home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-04-25 | 99.2 KB | 3,100 lines |
- Newsgroups: comp.sources.unix
- From: voodoo@hitl.washington.edu (Geoffery Coco)
- Subject: v26i184: veos-2.0 - The Virtual Environment Operating Shell, V2.0, Part01/16
- Sender: unix-sources-moderator@vix.com
- Approved: paul@vix.com
-
- Submitted-By: voodoo@hitl.washington.edu (Geoffery Coco)
- Posting-Number: Volume 26, Issue 184
- Archive-Name: veos-2.0/part01
-
- VEOS is an extendable environment for prototyping distributed applications
- for unix. The VEOS application programmer's interface is provided by XLISP
- 2.1 (by David Betz). XLISP provides familiar program control; VEOS
- provides interprocess message passing and content addressable database
- access.
-
- VEOS (The Virtual Environment Operating Shell) was developed for
- distributed Virtual Reality applications at The Human Interface Technology
- Lab in Seattle and has been in use for two years. However, VEOS is by no
- means limited to these types of applications.
-
- VEOS is ideal for applications where hardware resources are not physically
- proximal or where machine-dependent resources (e.g. software packages,
- interface devices, etc..) are isolated because of their platform.
-
- VEOS is also ideal for prototyping programs which employ coarse grain
- parallellism. That is, VEOS uses heavyweight sequential processes,
- corresponding roughly to unix processes. In this way, VEOS can be used to
- utilize a network of workstations as a virtual multiprocessor.
-
- C programmers can build custom VEOS tools which are accessable from XLISP
- and thus are immediately compatible with other VEOS tools. Lisp
- programmers can quickly design and run distributed programs which utilize
- diverse hardware and software resources through these custom tools.
-
- HITL Engineers have already built VEOS tools for real-time stereo graphics,
- sound, position sensing and voice synthesis and input. Many of these tools
- will also be released in the coming months.
-
- VEOS is not an operating system. VEOS is a user-level framework for
- prototyping distributed applications. Its primary focus is flexibility and
- ease of use. This design comes somewhat at the expense of real-time
- performance. This is not to say, however, that VEOS cannot achieve good
- performance with proper application structuring and tuning.
-
- Relying on only the most common unix interface, VEOS is platform
- independent. VEOS 2.0 has been extensively tested on platforms such as DEC
- 5000, Sun 4, and Silicon Graphics VGX and Indigo.
-
- voodoo@hitl.washington.edu (Geoffery Coco)
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 1 (of 16)."
- # Contents: FERN_LICENSE MANIFEST README VEOS_LICENSE bin docs
- # kernel_private kernel_private/bin kernel_private/lib
- # kernel_private/src kernel_private/src/fern
- # kernel_private/src/fern/fcon.lsp kernel_private/src/fern/fe.lsp
- # kernel_private/src/fern/fe_locl.lsp
- # kernel_private/src/fern/fph.lsp
- # kernel_private/src/fern/load_bal.lsp
- # kernel_private/src/fern/zoot.lsp kernel_private/src/include
- # kernel_private/src/include/fern.h
- # kernel_private/src/include/fern_prims.h
- # kernel_private/src/include/xv_native_prims.h
- # kernel_private/src/nancy kernel_private/src/shell
- # kernel_private/src/shell/main.c kernel_private/src/talk lib lisp
- # lisp/ancestor-maker.lsp lisp/ancestors lisp/fern.lsp
- # lisp/file_io.lsp lisp/interactive.lsp lisp/tabula_rasa.lsp
- # lisp/test_rpc.lsp src src/include src/kernel_current
- # src/kernel_current/fern src/kernel_current/fern/fcon.lsp
- # src/kernel_current/fern/fe.lsp src/kernel_current/fern/fe_locl.lsp
- # src/kernel_current/fern/fph.lsp
- # src/kernel_current/fern/load_bal.lsp
- # src/kernel_current/fern/zoot.lsp src/kernel_current/include
- # src/kernel_current/include/fern.h
- # src/kernel_current/include/fern_prims.h
- # src/kernel_current/include/xv_native_prims.h
- # src/kernel_current/nancy src/kernel_current/shell
- # src/kernel_current/shell/main.c src/kernel_current/talk
- # src/machine_specific.mk src/utils src/utils/error_check.c
- # src/utils/makefile src/utils/xform_prims.h src/utils/xv_utils.h
- # src/xlisp src/xlisp/Makefile src/xlisp/Makefile.basic
- # src/xlisp/Makefile.machine_specific src/xlisp/bin src/xlisp/lib
- # src/xlisp/xcore src/xlisp/xcore/c src/xlisp/xcore/c/COPYRIGHT
- # src/xlisp/xcore/c/Makefile src/xlisp/xcore/c/osdefs.h
- # src/xlisp/xcore/c/osptrs.h src/xlisp/xcore/doc
- # Wrapped by vixie@efficacy.home.vix.com on Sun Apr 25 23:10:30 1993
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'FERN_LICENSE' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'FERN_LICENSE'\"
- else
- echo shar: Extracting \"'FERN_LICENSE'\" \(1514 characters\)
- sed "s/^X//" >'FERN_LICENSE' <<'END_OF_FILE'
- X*******************************************************************************
- X*
- X*
- X* FERN 1.0 Copyright (C) 1992 Geoffrey P. Coco,
- X* Human Interface Technology Laboratory
- X*
- X*
- X* Permission to use, copy, or modify these programs and their documentation
- X* without fee for educational and research purposes only is hereby granted,
- X* provided that this copyright notice appears on all copies and supporting
- X* documentation. For any other uses of this software, in original or modified
- X* form, including but not limited to distribution in whole or in part, specific
- X* prior permission must be obtained from HITL. These programs shall not be
- X* used, rewritten, or adapted as the basis of a commercial software or hardware
- X* product without first obtaining appropriate licenses from HITL. HITL makes no
- X* representations about the suitability of this software for any purpose. It is
- X* provided "as is" without express or implied warranty.
- X*
- X* HITL AND GEOFFREY COCO DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- X* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT
- X* SHALL HITL NOR GEOFFREY COCO BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- X* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- X* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- X* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
- X* OF THIS SOFTWARE.
- X*
- X*******************************************************************************
- END_OF_FILE
- if test 1514 -ne `wc -c <'FERN_LICENSE'`; then
- echo shar: \"'FERN_LICENSE'\" unpacked with wrong size!
- fi
- # end of 'FERN_LICENSE'
- fi
- if test -f 'MANIFEST' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'MANIFEST'\"
- else
- echo shar: Extracting \"'MANIFEST'\" \(5181 characters\)
- sed "s/^X//" >'MANIFEST' <<'END_OF_FILE'
- X File Name Archive # Description
- X-----------------------------------------------------------
- X FERN_LICENSE 1
- X MANIFEST 1
- X README 1
- X VEOS_LICENSE 1
- X bin 1
- X docs 1
- X docs/VEOS_The_Complete_Documentation 14
- X docs/xlisp.doc 16
- X kernel_private 1
- X kernel_private/bin 1
- X kernel_private/lib 1
- X kernel_private/makefile 3
- X kernel_private/src 1
- X kernel_private/src/fern 1
- X kernel_private/src/fern/fcon.lsp 1
- X kernel_private/src/fern/fe.lsp 1
- X kernel_private/src/fern/fe_bnd.lsp 5
- X kernel_private/src/fern/fe_ext.lsp 5
- X kernel_private/src/fern/fe_int.lsp 7
- X kernel_private/src/fern/fe_locl.lsp 1
- X kernel_private/src/fern/fern.c 5
- X kernel_private/src/fern/fern.lsp 2
- X kernel_private/src/fern/fgod.lsp 3
- X kernel_private/src/fern/fph.lsp 1
- X kernel_private/src/fern/fx.lsp 4
- X kernel_private/src/fern/load_bal.lsp 1
- X kernel_private/src/fern/local.lsp 2
- X kernel_private/src/fern/zoot.lsp 1
- X kernel_private/src/include 1
- X kernel_private/src/include/fern.h 1
- X kernel_private/src/include/fern_prims.h 1
- X kernel_private/src/include/kernel.h 4
- X kernel_private/src/include/world.h 3
- X kernel_private/src/include/xv_native.h 2
- X kernel_private/src/include/xv_native_prims.h 1
- X kernel_private/src/nancy 1
- X kernel_private/src/nancy/nancy_fundamental.c 13
- X kernel_private/src/nancy/nancy_match.c 8
- X kernel_private/src/shell 1
- X kernel_private/src/shell/main.c 1
- X kernel_private/src/shell/shell.c 4
- X kernel_private/src/shell/xv_glutils.c 15
- X kernel_private/src/shell/xv_native.c 11
- X kernel_private/src/talk 1
- X kernel_private/src/talk/shmem.c 3
- X kernel_private/src/talk/socket.c 7
- X kernel_private/src/talk/talk.c 11
- X lib 1
- X lisp 1
- X lisp/ancestor-maker.lsp 1
- X lisp/ancestors 1
- X lisp/fern.lsp 1
- X lisp/file_io.lsp 1
- X lisp/interactive.lsp 1
- X lisp/tabula_rasa.lsp 1
- X lisp/test_rpc.lsp 1
- X src 1
- X src/include 1
- X src/include/world.h 3
- X src/kernel_current 1
- X src/kernel_current/fern 1
- X src/kernel_current/fern/fcon.lsp 1
- X src/kernel_current/fern/fe.lsp 1
- X src/kernel_current/fern/fe_bnd.lsp 5
- X src/kernel_current/fern/fe_ext.lsp 5
- X src/kernel_current/fern/fe_int.lsp 7
- X src/kernel_current/fern/fe_locl.lsp 1
- X src/kernel_current/fern/fern.c 5
- X src/kernel_current/fern/fern.lsp 2
- X src/kernel_current/fern/fgod.lsp 3
- X src/kernel_current/fern/fph.lsp 1
- X src/kernel_current/fern/fx.lsp 4
- X src/kernel_current/fern/load_bal.lsp 1
- X src/kernel_current/fern/local.lsp 2
- X src/kernel_current/fern/zoot.lsp 1
- X src/kernel_current/include 1
- X src/kernel_current/include/fern.h 1
- X src/kernel_current/include/fern_prims.h 1
- X src/kernel_current/include/kernel.h 4
- X src/kernel_current/include/world.h 3
- X src/kernel_current/include/xv_native.h 2
- X src/kernel_current/include/xv_native_prims.h 1
- X src/kernel_current/nancy 1
- X src/kernel_current/nancy/nancy_fundamental.c 12
- X src/kernel_current/nancy/nancy_match.c 8
- X src/kernel_current/shell 1
- X src/kernel_current/shell/main.c 1
- X src/kernel_current/shell/shell.c 4
- X src/kernel_current/shell/xv_glutils.c 14
- X src/kernel_current/shell/xv_native.c 10
- X src/kernel_current/talk 1
- X src/kernel_current/talk/shmem.c 3
- X src/kernel_current/talk/socket.c 8
- X src/kernel_current/talk/talk.c 11
- X src/machine_specific.mk 1
- X src/utils 1
- X src/utils/error_check.c 1
- X src/utils/makefile 1
- X src/utils/xform_prims.c 9
- X src/utils/xform_prims.h 1
- X src/utils/xv_utils.c 6
- X src/utils/xv_utils.h 1
- X src/xlisp 1
- X src/xlisp/Makefile 1
- X src/xlisp/Makefile.basic 1
- X src/xlisp/Makefile.machine_specific 1
- X src/xlisp/bin 1
- X src/xlisp/lib 1
- X src/xlisp/xcore 1
- X src/xlisp/xcore/c 1
- X src/xlisp/xcore/c/COPYRIGHT 1
- X src/xlisp/xcore/c/ChangeLog 3
- X src/xlisp/xcore/c/Makefile 1
- X src/xlisp/xcore/c/osdefs.h 1
- X src/xlisp/xcore/c/osptrs.h 1
- X src/xlisp/xcore/c/unixstuff.c 6
- X src/xlisp/xcore/c/xlbfun.c 9
- X src/xlisp/xcore/c/xlcont.c 12
- X src/xlisp/xcore/c/xldbug.c 2
- X src/xlisp/xcore/c/xldmem.c 8
- X src/xlisp/xcore/c/xldmem.h 3
- X src/xlisp/xcore/c/xleval.c 10
- X src/xlisp/xcore/c/xlfio.c 6
- X src/xlisp/xcore/c/xlftab.c 10
- X src/xlisp/xcore/c/xlglob.c 2
- X src/xlisp/xcore/c/xlimage.c 5
- X src/xlisp/xcore/c/xlinit.c 4
- X src/xlisp/xcore/c/xlio.c 2
- X src/xlisp/xcore/c/xlisp.h 6
- X src/xlisp/xcore/c/xljump.c 2
- X src/xlisp/xcore/c/xllist.c 9
- X src/xlisp/xcore/c/xlmath.c 6
- X src/xlisp/xcore/c/xlobj.c 7
- X src/xlisp/xcore/c/xlpp.c 2
- X src/xlisp/xcore/c/xlprin.c 4
- X src/xlisp/xcore/c/xlread.c 9
- X src/xlisp/xcore/c/xlstr.c 7
- X src/xlisp/xcore/c/xlstruct.c 6
- X src/xlisp/xcore/c/xlsubr.c 2
- X src/xlisp/xcore/c/xlsym.c 2
- X src/xlisp/xcore/c/xlsys.c 2
- X src/xlisp/xcore/c/xmain.c 2
- X src/xlisp/xcore/doc 1
- X src/xlisp/xcore/doc/internals.doc 13
- X src/xlisp/xmodules.h 2
- END_OF_FILE
- if test 5181 -ne `wc -c <'MANIFEST'`; then
- echo shar: \"'MANIFEST'\" unpacked with wrong size!
- fi
- # end of 'MANIFEST'
- fi
- if test -f 'README' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'README'\"
- else
- echo shar: Extracting \"'README'\" \(386 characters\)
- sed "s/^X//" >'README' <<'END_OF_FILE'
- X
- Xsee file docs/VEOS_The_Complete_Documentation for VEOS introduction
- X
- Xsee file kernel_private/makefile for build instructions
- X
- X[ the file docs/xlisp.ref, at 550KB, was too large to include with the
- X comp.sources.unix release of this package. xlisp was last posted to
- X comp.sources.misc in that group's tenth volume. get the manual from
- X an archive site if you need it. --vix ]
- END_OF_FILE
- if test 386 -ne `wc -c <'README'`; then
- echo shar: \"'README'\" unpacked with wrong size!
- fi
- # end of 'README'
- fi
- if test -f 'VEOS_LICENSE' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'VEOS_LICENSE'\"
- else
- echo shar: Extracting \"'VEOS_LICENSE'\" \(1853 characters\)
- sed "s/^X//" >'VEOS_LICENSE' <<'END_OF_FILE'
- X*******************************************************************************
- X*
- X*
- X* VEOS 2.0 Copyright (C) 1992 Geoffrey P. Coco,
- X* Human Interface Technology Laboratory
- X*
- X*
- X* Permission to use, copy, or modify these programs and their documentation
- X* without fee for educational and research purposes only is hereby granted,
- X* provided that this copyright notice appears on all copies and supporting
- X* documentation. For any other uses of this software, in original or modified
- X* form, including but not limited to distribution in whole or in part, specific
- X* prior permission must be obtained from HITL. These programs shall not be
- X* used, rewritten, or adapted as the basis of a commercial software or hardware
- X* product without first obtaining appropriate licenses from HITL. HITL makes no
- X* representations about the suitability of this software for any purpose. It is
- X* provided "as is" without express or implied warranty.
- X*
- X* HITL AND GEOFFREY COCO DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- X* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT
- X* SHALL HITL NOR GEOFFREY COCO BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- X* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- X* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- X* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
- X* OF THIS SOFTWARE.
- X*
- X*
- X* Questions about this software should be addressed to:
- X*
- X* Software Support
- X* Human Interface Technology Laboratory
- X* FJ-15, University of Washington
- X* Seattle, Washington 98195 USA
- X*
- X* or via email:
- X*
- X* veos-support@hitl.washington.edu
- X*
- X*******************************************************************************
- END_OF_FILE
- if test 1853 -ne `wc -c <'VEOS_LICENSE'`; then
- echo shar: \"'VEOS_LICENSE'\" unpacked with wrong size!
- fi
- # end of 'VEOS_LICENSE'
- fi
- if test ! -d 'bin' ; then
- echo shar: Creating directory \"'bin'\"
- mkdir 'bin'
- fi
- if test ! -d 'docs' ; then
- echo shar: Creating directory \"'docs'\"
- mkdir 'docs'
- fi
- if test ! -d 'kernel_private' ; then
- echo shar: Creating directory \"'kernel_private'\"
- mkdir 'kernel_private'
- fi
- if test ! -d 'kernel_private/bin' ; then
- echo shar: Creating directory \"'kernel_private/bin'\"
- mkdir 'kernel_private/bin'
- fi
- if test ! -d 'kernel_private/lib' ; then
- echo shar: Creating directory \"'kernel_private/lib'\"
- mkdir 'kernel_private/lib'
- fi
- if test ! -d 'kernel_private/src' ; then
- echo shar: Creating directory \"'kernel_private/src'\"
- mkdir 'kernel_private/src'
- fi
- if test ! -d 'kernel_private/src/fern' ; then
- echo shar: Creating directory \"'kernel_private/src/fern'\"
- mkdir 'kernel_private/src/fern'
- fi
- if test -f 'kernel_private/src/fern/fcon.lsp' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'kernel_private/src/fern/fcon.lsp'\"
- else
- echo shar: Extracting \"'kernel_private/src/fern/fcon.lsp'\" \(2705 characters\)
- sed "s/^X//" >'kernel_private/src/fern/fcon.lsp' <<'END_OF_FILE'
- X;;-----------------------------------------------------------
- X;; file: fcon.lsp
- X;;
- X;; FERN is the Fractal Entity Relativity Node.
- X;; This file is the control flow compenent of the Fern System.
- X;;
- X;; creation: February 28, 1992
- X;;
- X;; by Geoffrey P. Coco at the HITLab, Seattle
- X;;-----------------------------------------------------------
- X
- X;;-----------------------------------------------------------
- X;; Copyright (C) 1992 Geoffrey P. Coco,
- X;; Human Interface Technology Lab, Seattle
- X;;-----------------------------------------------------------
- X
- X
- X;;-----------------------------------------------------------
- X#|
- X
- XThese functions manage fern-entity lisp code flow. They
- Xcompose the program control component of the Fern System and
- Xare collectively termed FCON.
- X
- XPrimarily, the FCON handles local behavior code management.
- X
- X|#
- X;;-----------------------------------------------------------
- X
- X
- X
- X;;-----------------------------------------------------------
- X;; FCON Public Functions
- X;;-----------------------------------------------------------
- X
- X
- X;; pass "name" and '(function-call with args)
- X(defun fcon-add-react-proc (proc-name func)
- X (progn
- X (fcon-delete-react-proc proc-name)
- X (setf react-procs (append react-procs (list (list proc-name func))))
- X ))
- X
- X;; pass "name" and '(function-call with args)
- X(defun fcon-add-persist-proc (proc-name func)
- X (progn
- X (fcon-delete-persist-proc proc-name)
- X (setf persist-procs (append persist-procs (list (list proc-name func))))
- X ))
- X
- X;; pass name
- X(defun fcon-delete-react-proc (proc-name)
- X (setq react-procs
- X (delete proc-name react-procs :test (lambda (x y) (equal x (car y))))))
- X
- X;; pass name
- X(defun fcon-delete-persist-proc (proc-name)
- X (setq persist-procs
- X (delete proc-name persist-procs :test (lambda (x y) (equal x (car y))))))
- X
- X;;-----------------------------------------------------------
- X
- X(defun fcon-ungo (uid)
- X (vthrow (list uid) (list 'fcon-local-ungo)))
- X
- X;;-----------------------------------------------------------
- X
- X
- X
- X;;-----------------------------------------------------------
- X;; FCON private functions
- X;;-----------------------------------------------------------
- X
- X
- X;;-----------------------------------------------------------
- X
- X(defun fcon-init ()
- X (progn
- X (setq persist-procs ()
- X react-procs ())
- X t))
- X
- X;;-----------------------------------------------------------
- X
- X(defun fcon-persist ()
- X (progn
- X ;; update physical boundary from hardware
- X (fph-perceive)
- X
- X ;; do actual persisting
- X (do-procs persist-procs)
- X
- X ;; update hardware from physical boundary
- X (fph-exude)
- X ))
- X
- X(defun fcon-react ()
- X (do-procs react-procs))
- X
- X;;-----------------------------------------------------------
- X
- X
- X
- END_OF_FILE
- if test 2705 -ne `wc -c <'kernel_private/src/fern/fcon.lsp'`; then
- echo shar: \"'kernel_private/src/fern/fcon.lsp'\" unpacked with wrong size!
- fi
- # end of 'kernel_private/src/fern/fcon.lsp'
- fi
- if test -f 'kernel_private/src/fern/fe.lsp' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'kernel_private/src/fern/fe.lsp'\"
- else
- echo shar: Extracting \"'kernel_private/src/fern/fe.lsp'\" \(3080 characters\)
- sed "s/^X//" >'kernel_private/src/fern/fe.lsp' <<'END_OF_FILE'
- X;;-----------------------------------------------------------
- X;; file: fe.lsp
- X;;
- X;; FERN is the Fractal Entity Relativity Node.
- X;; This file is the entity component of the Fern System.
- X;;
- X;; creation: February 28, 1992
- X;;
- X;; by Geoffrey P. Coco at the HITLab, Seattle
- X;;-----------------------------------------------------------
- X
- X;;-----------------------------------------------------------
- X;; Copyright (C) 1992 Geoffrey P. Coco,
- X;; Human Interface Technology Lab, Seattle
- X;;-----------------------------------------------------------
- X
- X;;-----------------------------------------------------------
- X#|
- X
- XThese functions perform all local database operations are
- Xcollectively termed the FE.
- X
- XThe FE maintains the "perc" grouplspace partition. That is,
- Xall data associated with the Fern System is passed through
- Xthese functions to the grouplespace.
- X
- XInternally, the Fern System uses these functions exclusively.
- XAnd, in the interest of forward compatibility, Fern
- Xprogrammers are highly encouraged to use these functions
- Xexclusively to access Fern's "perc" grouplespace partition.
- X
- X|#
- X;;-----------------------------------------------------------
- X
- X
- X
- X;;-----------------------------------------------------------
- X;; Load FE Subcomponents
- X;;-----------------------------------------------------------
- X
- X(load "fe_ext")
- X(load "fe_bnd")
- X(load "fe_int")
- X(load "fe_locl")
- X
- X;;-----------------------------------------------------------
- X
- X
- X
- X
- X;;===========================================================
- X;;
- X;; FE PRIVATE FUNCTIONS
- X;;
- X;;===========================================================
- X
- X
- X;;-----------------------------------------------------------
- X#|
- Xall FE functions assume that the partitions are setup like
- Xthis. That is, for any FE functions to work properly, the
- X"perc" partition must be fully articulated.
- X
- XA full "perc" partition contains the three subpartitions:
- X"external", "boundary", "internal". Furthermore, those
- Xsubpartitions must contain their respective sub-partitions.
- X
- XAn empty but articulated perception partition looks like:
- X
- X("perc"
- X
- X (;external
- X () ;spaces
- X () ;siblings
- X () ;filters
- X )
- X
- X (;boundary
- X () ;virtual
- X () ;physical
- X )
- X
- X (;internal
- X () ;local
- X () ;sublings
- X () ;filters
- X )
- X
- X )
- X
- X|#
- X
- X(defun fe-init ()
- X (progn
- X ;; setup the "perception" grouplespace partition.
- X (put-gspace-partition '("perc"
- X () ;; external
- X () ;; boundary
- X () ;; internal
- X ))
- X
- X ;; setup "external" sub-partitions.
- X (fe-put.ext '(() ;; current spaces.
- X () ;; siblings among all spaces.
- X () ;; perceptual filters.
- X ))
- X
- X ;; setup "boundary" sub-partitions.
- X (fe-put.bndry (list self ;; self uid.
- X () ;; virtual object-list.
- X () ;; physical object-list.
- X ))
- X
- X ;; setup "internal" sub-partitions.
- X (fe-put.int '(() ;; local memory
- X () ;; the space for the entity's internal world
- X () ;; the filters for each contained entity
- X ))
- X ))
- X
- X;;-----------------------------------------------------------
- END_OF_FILE
- if test 3080 -ne `wc -c <'kernel_private/src/fern/fe.lsp'`; then
- echo shar: \"'kernel_private/src/fern/fe.lsp'\" unpacked with wrong size!
- fi
- # end of 'kernel_private/src/fern/fe.lsp'
- fi
- if test -f 'kernel_private/src/fern/fe_locl.lsp' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'kernel_private/src/fern/fe_locl.lsp'\"
- else
- echo shar: Extracting \"'kernel_private/src/fern/fe_locl.lsp'\" \(2295 characters\)
- sed "s/^X//" >'kernel_private/src/fern/fe_locl.lsp' <<'END_OF_FILE'
- X;
- X; local.lsp
- X;
- X; Copyright (C) 1992 Washington Technology Center
- X;
- X; by Andrew MacDonald at the HITLab
- X;
- X; object caching in the local workspace
- X;
- X; this is based on fe_bnd.lsp and fe_int.lsp, and manipulates objects
- X; in perc.int.locl
- X;
- X; functions are of the form fe-(put|get|copy).int.locl.(accessors),
- X; with macros of the form lo-(put|get|copy).(accessors) defined
- X; for each function
- X;
- X;;-----------------------------------------------------------
- X;; file: fe.lsp
- X;; by Geoffrey P. Coco at the HITLab, Seattle
- X;;-----------------------------------------------------------
- X
- X;;-----------------------------------------------------------
- X;; Copyright (C) 1992 Human Interface Technology Lab, Seattle
- X;;-----------------------------------------------------------
- X
- X
- X;;===========================================================
- X;; Show Local Object Space
- X;;===========================================================
- X
- X(defun lo-dump ()
- X (pprint (fe-copy.int.locl)))
- X
- X(defun lo-empty ()
- X (pprint (fe-xtrct.int.locl)))
- X
- X;;===========================================================
- X;; Macro Shortcuts
- X;;===========================================================
- X
- X(defmacro lo-jam-ob (ob)
- X `(fe-jam.int.locl.ob ,ob))
- X
- X(defmacro lo-put-ob (ob)
- X `(fe-put.int.locl.ob ,ob))
- X
- X(defmacro lo-copy-ob (ob-name)
- X `(fe-copy.int.locl.ob ,ob-name))
- X
- X(defmacro lo-get-ob (ob-name)
- X `(fe-get.int.locl.ob ,ob-name))
- X
- X;----------------------------------------------------------------
- X
- X(defmacro lo-copy-ob-names ()
- X '(fe-copy.int.locl.ob.names))
- X
- X;----------------------------------------------------------------
- X
- X(defmacro lo-jab-attr (ob-name attr)
- X `(fe-jam.int.locl.ob.attr ,ob-name ,attr))
- X
- X(defmacro lo-put-attr (ob-name attr)
- X `(fe-put.int.locl.ob.attr ,ob-name ,attr))
- X
- X;----------------------------------------------------------------
- X
- X(defmacro lo-get-attr (ob-name attr-name)
- X `(fe-get.int.locl.ob.attr ,ob-name ,attr-name))
- X
- X;----------------------------------------------------------------
- X
- X(defmacro lo-copy-attr (ob-name attr-name)
- X `(fe-copy.int.locl.ob.attr ,ob-name ,attr-name))
- X
- X(defmacro lo-copy-attr-names (ob-name)
- X `(fe-copy.int.locl.ob.attr.names ,ob-name))
- X
- X(defmacro lo-copy-attr-val (ob-name attr-name)
- X `(fe-copy.int.locl.ob.attr.val ,ob-name ,attr-name))
- X
- END_OF_FILE
- if test 2295 -ne `wc -c <'kernel_private/src/fern/fe_locl.lsp'`; then
- echo shar: \"'kernel_private/src/fern/fe_locl.lsp'\" unpacked with wrong size!
- fi
- # end of 'kernel_private/src/fern/fe_locl.lsp'
- fi
- if test -f 'kernel_private/src/fern/fph.lsp' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'kernel_private/src/fern/fph.lsp'\"
- else
- echo shar: Extracting \"'kernel_private/src/fern/fph.lsp'\" \(2467 characters\)
- sed "s/^X//" >'kernel_private/src/fern/fph.lsp' <<'END_OF_FILE'
- X;;-----------------------------------------------------------
- X;; file: fph.lsp
- X;;
- X;; FERN is the Fractal Entity Relativity Node.
- X;; This file is the FPH compenent of the Fern System.
- X;;
- X;; creation: March 28, 1992
- X;;
- X;; by Geoffrey P. Coco at the HITLab, Seattle
- X;;-----------------------------------------------------------
- X
- X;;-----------------------------------------------------------
- X;; Copyright (C) 1992 Geoffrey P. Coco,
- X;; Human Interface Technology Lab, Seattle
- X;;-----------------------------------------------------------
- X
- X
- X;;-----------------------------------------------------------
- X#|
- X
- XThese functions provide users of the Fern System with a
- Xstandardized mechanism for coupling hardware-specific
- Xinterface code to objects in the 'physical' boundary. They
- Xrepresent the FPH component of the Fern System.
- X
- X|#
- X;;-----------------------------------------------------------
- X
- X
- X;;===========================================================
- X;;
- X;; FPH PUBLIC FUNCTIONS
- X;;
- X;;===========================================================
- X
- X;; pass "name" and '(function-call with args)
- X(defun fph-add-input-proc (proc-name func)
- X (progn
- X (fph-delete-input-proc proc-name)
- X (setf pre-persist-procs (append pre-persist-procs (list (list proc-name func))))
- X ))
- X
- X;; pass "name" and '(function-call with args)
- X(defun fph-add-output-proc (proc-name func)
- X (progn
- X (fph-delete-output-proc proc-name)
- X (setf post-persist-procs (append post-persist-procs (list (list proc-name func))))
- X ))
- X
- X;; pass name
- X(defun fph-delete-input-proc (proc-name)
- X (setq pre-persist-procs
- X (delete proc-name pre-persist-procs :test (lambda (x y) (equal x (car y))))))
- X
- X;; pass name
- X(defun fph-delete-output-proc (proc-name)
- X (setq post-persist-procs
- X (delete proc-name post-persist-procs :test (lambda (x y) (equal x (car y))))))
- X
- X
- X;;===========================================================
- X;;
- X;; FPH PRIVATE FUNCTIONS
- X;;
- X;;===========================================================
- X
- X
- X;;-----------------------------------------------------------
- X
- X(defun fph-init ()
- X (setq pre-persist-procs ()
- X post-persist-procs ())
- X )
- X
- X;;-----------------------------------------------------------
- X
- X;; update physical boundary from hardware
- X(defun fph-perceive ()
- X (do-procs pre-persist-procs)
- X )
- X
- X;; update hardware from physical boundary
- X(defun fph-exude ()
- X (do-procs post-persist-procs)
- X )
- X;;-----------------------------------------------------------
- X
- X
- X
- END_OF_FILE
- if test 2467 -ne `wc -c <'kernel_private/src/fern/fph.lsp'`; then
- echo shar: \"'kernel_private/src/fern/fph.lsp'\" unpacked with wrong size!
- fi
- # end of 'kernel_private/src/fern/fph.lsp'
- fi
- if test -f 'kernel_private/src/fern/load_bal.lsp' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'kernel_private/src/fern/load_bal.lsp'\"
- else
- echo shar: Extracting \"'kernel_private/src/fern/load_bal.lsp'\" \(2025 characters\)
- sed "s/^X//" >'kernel_private/src/fern/load_bal.lsp' <<'END_OF_FILE'
- X;;-----------------------------------------------------------
- X;; file: fbal.lsp
- X;;
- X;; FERN is the Fractal Entity Relativity Node.
- X;; This file is the Load Balancing module of the Fern System.
- X;;
- X;; creation: February 28, 1992
- X;;
- X;; by Geoffrey P. Coco at the HITLab, Seattle
- X;;-----------------------------------------------------------
- X
- X;;-----------------------------------------------------------
- X;; Copyright (C) 1992 Human Interface Technology Lab, Seattle
- X;;-----------------------------------------------------------
- X
- X
- X;;-----------------------------------------------------------
- X#|
- X
- XThese functions provide transparent load-balancing for Fern
- XEntities and compose the Load Balancing (or FBAL) component
- Xof the Fern System.
- X
- XThe FBAL component ensures that the various computational
- Xrequirements of a running scenario are evenly distributed
- Xacross the local area network workstations.
- X
- XSimply, entity computational requirements are rated with a
- Xscalar, as are hardware capabilities. Also important are the
- Xhardware peripheral requirements an entity.
- X
- XThese factors are rules for inferencing on which local
- Xnetwork host to place the next entity. The one local-area
- XFBAL entity (the universe, by convention) maintains the
- Xdynamic database of network-node/entity-load information.
- X
- XNo dynamic balancing is projected (i.e. migrating entities).
- X
- X|#
- X;;-----------------------------------------------------------
- X
- X
- X
- X;;-----------------------------------------------------------
- X;; FBAL Private Functions
- X;;-----------------------------------------------------------
- X
- X(define fbal-init ()
- X (progn
- X (vget '(> ("balance" @@) **))
- X (vput '("balance" () ()) '(^ @@))
- X
- X ))
- X
- X
- X(defun fbal-make-node (binary program)
- X (vthrow (list universe) `(fbal-remote-new-make-node binary
- X program
- X ,self))
- X )
- X
- X
- X(defun fbal-remote-make-node (binary program ancestor)
- X (fcon-make-node (fbal-avail-host binary program) binary program ancestor)
- X )
- X
- X
- X(defun fbal-avail-host (binary program)
- X
- X )
- X
- X
- X
- X
- END_OF_FILE
- if test 2025 -ne `wc -c <'kernel_private/src/fern/load_bal.lsp'`; then
- echo shar: \"'kernel_private/src/fern/load_bal.lsp'\" unpacked with wrong size!
- fi
- # end of 'kernel_private/src/fern/load_bal.lsp'
- fi
- if test -f 'kernel_private/src/fern/zoot.lsp' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'kernel_private/src/fern/zoot.lsp'\"
- else
- echo shar: Extracting \"'kernel_private/src/fern/zoot.lsp'\" \(333 characters\)
- sed "s/^X//" >'kernel_private/src/fern/zoot.lsp' <<'END_OF_FILE'
- X(read-time)
- X(do ((i 0))
- X ((> i 10000) t)
- X
- X (let* ((a (+ 1 2))
- X (b (+ a 1)))
- X
- X (+ a b))
- X (setq i (1+ i))
- X )
- X(printf "time after let loop: " (read-time))
- X
- X(do ((i 0))
- X ((> i 10000) t)
- X
- X (setq a (+ 1 2))
- X (setq b (+ a 1))
- X (+ a b)
- X (setq i (1+ i))
- X )
- X
- X(printf "time after setq loop: " (read-time))
- END_OF_FILE
- if test 333 -ne `wc -c <'kernel_private/src/fern/zoot.lsp'`; then
- echo shar: \"'kernel_private/src/fern/zoot.lsp'\" unpacked with wrong size!
- fi
- # end of 'kernel_private/src/fern/zoot.lsp'
- fi
- if test ! -d 'kernel_private/src/include' ; then
- echo shar: Creating directory \"'kernel_private/src/include'\"
- mkdir 'kernel_private/src/include'
- fi
- if test -f 'kernel_private/src/include/fern.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'kernel_private/src/include/fern.h'\"
- else
- echo shar: Extracting \"'kernel_private/src/include/fern.h'\" \(1899 characters\)
- sed "s/^X//" >'kernel_private/src/include/fern.h' <<'END_OF_FILE'
- X/****************************************************************************************
- X * file: fern.h *
- X * *
- X * February 25, 1992: implementation of the Fractal Entity Relativity Node for veos. *
- X * *
- X * by Geoffrey P. Coco at the HITLab, Seattle. *
- X * *
- X ****************************************************************************************/
- X
- X/****************************************************************************************
- X * Copyright (C) 1992 Human Interface Technology Lab, Seattle *
- X ****************************************************************************************/
- X
- X
- X/*--------------------------------------------------------------------------------*
- X Useful Externs
- X *--------------------------------------------------------------------------------*/
- X
- Xextern LVAL xsendmsg0();
- Xextern LVAL s_unbound;
- Xextern LVAL true;
- Xextern LVAL s_stderr;
- Xextern LVAL s_quote;
- X
- Xextern void Native_NextMsg();
- X
- X/*--------------------------------------------------------------------------------*
- X Fern Data Structures
- X *--------------------------------------------------------------------------------*/
- X
- Xtypedef struct stmpnode {
- X
- X str63 sHost;
- X int iPort;
- X float fData;
- X struct stmpnode *pNext;
- X
- X } TStampEntRec,
- X *TPStampEntRec,
- X **THStampEntRec;
- X
- Xtypedef TPStampEntRec TStampEntHash[13];
- X
- X/*--------------------------------------------------------------------------------*
- X Defines
- X *--------------------------------------------------------------------------------*/
- X
- X#define FBASE_HASH_HOST(sHost) ((sHost[0] - 'a') / 2)
- X#define FBASE_HASH_HIT(pXVect, pFNode) \
- X(getfixnum(getelement(pXVect, 1)) == (pFNode)->iPort && \
- X strcmp(getstring(getelement(pXVect, 0)), (pFNode)->sHost) == 0)
- X
- X/*--------------------------------------------------------------------------------*/
- END_OF_FILE
- if test 1899 -ne `wc -c <'kernel_private/src/include/fern.h'`; then
- echo shar: \"'kernel_private/src/include/fern.h'\" unpacked with wrong size!
- fi
- # end of 'kernel_private/src/include/fern.h'
- fi
- if test -f 'kernel_private/src/include/fern_prims.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'kernel_private/src/include/fern_prims.h'\"
- else
- echo shar: Extracting \"'kernel_private/src/include/fern_prims.h'\" \(1892 characters\)
- sed "s/^X//" >'kernel_private/src/include/fern_prims.h' <<'END_OF_FILE'
- X/****************************************************************************************
- X * file: fern_prims.h *
- X * *
- X * February 25, 1992: implementation of the Fractal Entity Relativity Node for veos. *
- X * *
- X * by Geoffrey P. Coco at the HITLab, Seattle. *
- X * *
- X ****************************************************************************************/
- X
- X/****************************************************************************************
- X * Copyright (C) 1992 Human Interface Technology Lab, Seattle *
- X ****************************************************************************************/
- X
- X
- X/*--------------------------------------------------------------------------------*/
- X
- X#ifdef FERN_LOAD
- X
- XDEFINE_SUBR("FCON-GO", Fbase_fcon_go)
- XDEFINE_SUBR("FCON-LOCAL-UNGO", Fbase_fcon_local_ungo)
- XDEFINE_SUBR("FCON-TIME", Fbase_fcon_time)
- XDEFINE_SUBR("FBASE-INIT", Fbase_Init)
- XDEFINE_SUBR("FBASE-NEW-HTAB", Fbase_Hash_NewTab)
- XDEFINE_SUBR("FBASE-PUT-HASH", Fbase_Hash_AddUid)
- XDEFINE_SUBR("FBASE-GET-HASH", Fbase_Hash_RemoveUid)
- XDEFINE_SUBR("FBASE-HASH", Fbase_Hash_HashUid)
- XDEFINE_SUBR("FE-COPY.INT.SUBS", Fbase_CopyIntSubs)
- XDEFINE_SUBR("FBASE-INIT-COPY.INT.SUBS", Fbase_Init_CopyIntSubs)
- XDEFINE_SUBR("FE-COPY.BNDRY.VRT", Fbase_CopyBndryVrt)
- XDEFINE_SUBR("FBASE-INIT-COPY.BNDRY.VRT", Fbase_Init_CopyBndryVrt)
- X
- X#endif
- X
- X
- X#ifdef FERN_DEFS
- X
- Xextern LVAL Fbase_fcon_go();
- Xextern LVAL Fbase_fcon_local_ungo();
- Xextern LVAL Fbase_fcon_time();
- Xextern LVAL Fbase_Init();
- Xextern LVAL Fbase_Hash_NewTab();
- Xextern LVAL Fbase_Hash_AddUid();
- Xextern LVAL Fbase_Hash_RemoveUid();
- Xextern LVAL Fbase_Hash_HashUid();
- Xextern LVAL Fbase_CopyIntSubs();
- Xextern LVAL Fbase_CopyBndryVrt();
- Xextern LVAL Fbase_Init_CopyIntSubs();
- Xextern LVAL Fbase_Init_CopyBndryVrt();
- X
- X#endif
- X
- X/*--------------------------------------------------------------------------------*/
- END_OF_FILE
- if test 1892 -ne `wc -c <'kernel_private/src/include/fern_prims.h'`; then
- echo shar: \"'kernel_private/src/include/fern_prims.h'\" unpacked with wrong size!
- fi
- # end of 'kernel_private/src/include/fern_prims.h'
- fi
- if test -f 'kernel_private/src/include/xv_native_prims.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'kernel_private/src/include/xv_native_prims.h'\"
- else
- echo shar: Extracting \"'kernel_private/src/include/xv_native_prims.h'\" \(1763 characters\)
- sed "s/^X//" >'kernel_private/src/include/xv_native_prims.h' <<'END_OF_FILE'
- X/****************************************************************************************
- X * *
- X * file: xv_native_prims.h *
- X * *
- X * the xlisp include file for integration with VEOS native prims. *
- X * *
- X * creation: December, 1991 *
- X * *
- X * *
- X * by Geoffrey P. Coco at the HITLab, Seattle. *
- X * *
- X ****************************************************************************************/
- X
- X/****************************************************************************************
- X * Copyright (C) 1992 Geoffrey P. Coco, Human Interface Technology Lab, Seattle *
- X ****************************************************************************************/
- X
- X
- X
- X/****************************************************************************************/
- X
- X#ifdef VEOS_NATIVE_LOAD
- X
- XDEFINE_SUBR("VPUT", Native_Put )
- XDEFINE_SUBR("VGET", Native_Get )
- XDEFINE_SUBR("VCOPY", Native_Copy )
- XDEFINE_SUBR("VINIT", Native_Init )
- XDEFINE_SUBR("VCLOSE", Native_Close )
- XDEFINE_SUBR("VTASK", Native_Task )
- XDEFINE_SUBR("VTHROW", Native_Throw )
- XDEFINE_SUBR("VCATCH", Native_Catch )
- XDEFINE_SUBR("VNOSIGNALS", Native_NoSignals )
- XDEFINE_SUBR("VBUGS", Native_Bugs )
- XDEFINE_SUBR("VZOOT", Native_Zoot )
- XDEFINE_SUBR("VMINTIME", Native_MinTime )
- X
- X#endif
- X
- X
- X#ifdef VEOS_NATIVE_DEFS
- X
- Xextern LVAL Native_Put();
- Xextern LVAL Native_Get();
- Xextern LVAL Native_Copy();
- Xextern LVAL Native_Init();
- Xextern LVAL Native_Close();
- Xextern LVAL Native_Task();
- Xextern LVAL Native_Throw();
- Xextern LVAL Native_Catch();
- Xextern LVAL Native_NoSignals();
- Xextern LVAL Native_Bugs();
- Xextern LVAL Native_Zoot();
- Xextern LVAL Native_MinTime();
- X
- X#endif
- X
- X/****************************************************************************************/
- END_OF_FILE
- if test 1763 -ne `wc -c <'kernel_private/src/include/xv_native_prims.h'`; then
- echo shar: \"'kernel_private/src/include/xv_native_prims.h'\" unpacked with wrong size!
- fi
- # end of 'kernel_private/src/include/xv_native_prims.h'
- fi
- if test ! -d 'kernel_private/src/nancy' ; then
- echo shar: Creating directory \"'kernel_private/src/nancy'\"
- mkdir 'kernel_private/src/nancy'
- fi
- if test ! -d 'kernel_private/src/shell' ; then
- echo shar: Creating directory \"'kernel_private/src/shell'\"
- mkdir 'kernel_private/src/shell'
- fi
- if test -f 'kernel_private/src/shell/main.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'kernel_private/src/shell/main.c'\"
- else
- echo shar: Extracting \"'kernel_private/src/shell/main.c'\" \(1899 characters\)
- sed "s/^X//" >'kernel_private/src/shell/main.c' <<'END_OF_FILE'
- X/****************************************************************************************
- X * *
- X * file: main.c *
- X * *
- X * An example controlling of veos using xlisp interface. *
- X * *
- X * creation: December, 1991 *
- X * *
- X * *
- X * by Geoffrey P. Coco at the HITLab, Seattle. *
- X * *
- X ****************************************************************************************/
- X
- X/****************************************************************************************
- X * Copyright (C) 1992 Geoffrey P. Coco, Human Interface Technology Lab, Seattle *
- X ****************************************************************************************/
- X
- X
- X#include "world.h"
- X
- Xextern xmain();
- X
- X
- X/****************************************************************************************
- X * main
- X * launchpad of any stand-alone program
- X ****************************************************************************************/
- Xmain(argc, argv)
- X int argc;
- X char *argv[];
- X{
- X /** call the xlisp controller, never returns **/
- X xmain(argc, argv);
- X }
- X
- X
- X/****************************************************************************************
- X * xlinclude_hybrid_prims
- X * lisp calls this function to load user-defined lisp primitives
- X ****************************************************************************************/
- Xxlinclude_hybrid_prims()
- X{
- X /** load veos native lisp primitive entries **/
- X Shell_LoadNativePrims();
- X Fern_LoadPrims();
- X XVUtils_LoadPrims();
- X }
- X
- X
- X
- X/****************************************************************************************
- X * xlshutdown_hybrid
- X * lisp calls this function before graceful exit
- X ****************************************************************************************/
- Xxlshutdown_hybrid()
- X{
- X /** let the kernel unwind **/
- X Kernel_Shutdown();
- X }
- X
- X
- X
- X
- END_OF_FILE
- if test 1899 -ne `wc -c <'kernel_private/src/shell/main.c'`; then
- echo shar: \"'kernel_private/src/shell/main.c'\" unpacked with wrong size!
- fi
- # end of 'kernel_private/src/shell/main.c'
- fi
- if test ! -d 'kernel_private/src/talk' ; then
- echo shar: Creating directory \"'kernel_private/src/talk'\"
- mkdir 'kernel_private/src/talk'
- fi
- if test ! -d 'lib' ; then
- echo shar: Creating directory \"'lib'\"
- mkdir 'lib'
- fi
- if test ! -d 'lisp' ; then
- echo shar: Creating directory \"'lisp'\"
- mkdir 'lisp'
- fi
- if test -f 'lisp/ancestor-maker.lsp' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'lisp/ancestor-maker.lsp'\"
- else
- echo shar: Extracting \"'lisp/ancestor-maker.lsp'\" \(1300 characters\)
- sed "s/^X//" >'lisp/ancestor-maker.lsp' <<'END_OF_FILE'
- X;;-----------------------------------------------------------
- X;; file: fern.lsp
- X;;
- X;; FERN is the Fractal Entity Relativity Node.
- X;; This file builds the 'ancestor files' used by FERN
- X;; when creating new a new entity.
- X;; see functions fgod-make-node and fgod-be-node for details
- X;;
- X;; creation: February 28, 1992
- X;;
- X;; by Geoffrey P. Coco at the HITLab, Seattle
- X;;-----------------------------------------------------------
- X
- X;;-----------------------------------------------------------
- X;; Copyright (C) 1992 Geoffrey P. Coco,
- X;; Human Interface Technology Lab, Seattle
- X;;-----------------------------------------------------------
- X
- X(setq hosts
- X '("bandersnatch"
- X "callay"
- X "frabjous"
- X "vorpal"
- X "slithy"
- X "jabberwock"
- X "brillig"
- X "hawaii"
- X "iris2"
- X "hal"
- X "passion"
- X "envy"
- X "enos"
- X ))
- X
- X(do ((hosts hosts) fp filename host-name)
- X ((null hosts))
- X (setq host-name (car hosts))
- X
- X (do ((port 5500))
- X ((> port 5510))
- X
- X (setq file-name (sprintf host-name "_" port ".lsp"))
- X
- X (cond ((setq fp (open file-name :direction :output))
- X
- X ;; actual code generation
- X (print `(setq fern-ancestor ,(vector host-name port)) fp)
- X (print `(setq host-xdisplay ,(sprintf host-name ":0.0")) fp)
- X (close fp)))
- X
- X (setq port (1+ port))
- X )
- X (setq hosts (cdr hosts))
- X )
- X
- X
- END_OF_FILE
- if test 1300 -ne `wc -c <'lisp/ancestor-maker.lsp'`; then
- echo shar: \"'lisp/ancestor-maker.lsp'\" unpacked with wrong size!
- fi
- # end of 'lisp/ancestor-maker.lsp'
- fi
- if test ! -d 'lisp/ancestors' ; then
- echo shar: Creating directory \"'lisp/ancestors'\"
- mkdir 'lisp/ancestors'
- fi
- if test -f 'lisp/fern.lsp' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'lisp/fern.lsp'\"
- else
- echo shar: Extracting \"'lisp/fern.lsp'\" \(632 characters\)
- sed "s/^X//" >'lisp/fern.lsp' <<'END_OF_FILE'
- X;;-----------------------------------------------------------
- X;; file: fern.lsp
- X;;
- X;; FERN is the Fractal Entity Relativity Node.
- X;; This file invokes FERN from any directory.
- X;;
- X;; creation: February 28, 1992
- X;;
- X;; by Geoffrey P. Coco at the HITLab, Seattle
- X;;-----------------------------------------------------------
- X
- X;;-----------------------------------------------------------
- X;; Copyright (C) 1992 Geoffrey P. Coco,
- X;; Human Interface Technology Lab, Seattle
- X;;-----------------------------------------------------------
- X
- X
- X(setq load-path "/home/voodoo/veos/src/kernel_current/fern/")
- X(load "fern")
- X(setq load-path NIL)
- X
- X
- X
- END_OF_FILE
- if test 632 -ne `wc -c <'lisp/fern.lsp'`; then
- echo shar: \"'lisp/fern.lsp'\" unpacked with wrong size!
- fi
- # end of 'lisp/fern.lsp'
- fi
- if test -f 'lisp/file_io.lsp' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'lisp/file_io.lsp'\"
- else
- echo shar: Extracting \"'lisp/file_io.lsp'\" \(522 characters\)
- sed "s/^X//" >'lisp/file_io.lsp' <<'END_OF_FILE'
- X;; save partition of grouplespace to given file
- X;; specify partition with pattern arg
- X
- X(defun save-gspace (file-name pattern)
- X
- X (let (fp)
- X (cond ((setq fp (open file-name :direction :output))
- X
- X (print (vcopy pattern) fp)
- X (close fp)
- X t))))
- X
- X
- X
- X;; load file into partition of grouplespace
- X;; specify partition with pattern arg
- X
- X(defun load-gspace (file-name pattern)
- X
- X (let (err fp)
- X (cond ((setq fp (open file-name :direction :input))
- X
- X (setq err (vput (read fp) pattern))
- X (close fp)
- X err))))
- X
- X
- X
- END_OF_FILE
- if test 522 -ne `wc -c <'lisp/file_io.lsp'`; then
- echo shar: \"'lisp/file_io.lsp'\" unpacked with wrong size!
- fi
- # end of 'lisp/file_io.lsp'
- fi
- if test -f 'lisp/interactive.lsp' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'lisp/interactive.lsp'\"
- else
- echo shar: Extracting \"'lisp/interactive.lsp'\" \(1284 characters\)
- sed "s/^X//" >'lisp/interactive.lsp' <<'END_OF_FILE'
- X;;-----------------------------------------------------------
- X;; file: interactive.lsp
- X;;
- X;; Start up an autonomous entity
- X;;
- X;; creation: March 11, 1992
- X;;
- X;; by Geoffrey P. Coco at the HITLab, Seattle
- X;;-----------------------------------------------------------
- X
- X;;-----------------------------------------------------------
- X;; Copyright (C) 1992 Human Interface Technology Lab, Seattle
- X;;-----------------------------------------------------------
- X
- X
- X;;-----------------------------------------------------------
- X;; Module Initialization
- X;;-----------------------------------------------------------
- X
- X
- X;; FERN
- X
- X(load "/home/veos/lisp/fern")
- X
- X
- X
- X;;-----------------------------------------------------------
- X;; Define Behavior
- X;;-----------------------------------------------------------
- X
- X(defun get-command ()
- X (progn
- X (printf1 "\n\nPersist =>> ")
- X (pprint (eval (read)))
- X (printf "\n\n")
- X ))
- X
- X
- X;;-----------------------------------------------------------
- X;; Instill Behavior
- X;;-----------------------------------------------------------
- X
- X(fcon-add-persist-proc "get-command" '(get-command))
- X
- X
- X;;-----------------------------------------------------------
- X;; Begin
- X;;-----------------------------------------------------------
- X
- X(fcon-go)
- X
- END_OF_FILE
- if test 1284 -ne `wc -c <'lisp/interactive.lsp'`; then
- echo shar: \"'lisp/interactive.lsp'\" unpacked with wrong size!
- fi
- # end of 'lisp/interactive.lsp'
- fi
- if test -f 'lisp/tabula_rasa.lsp' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'lisp/tabula_rasa.lsp'\"
- else
- echo shar: Extracting \"'lisp/tabula_rasa.lsp'\" \(1439 characters\)
- sed "s/^X//" >'lisp/tabula_rasa.lsp' <<'END_OF_FILE'
- X;;-----------------------------------------------------------
- X;; file: tabula_rasa.lsp
- X;;
- X;; Start up an autonomous entity with UM-Engine
- X;;
- X;; creation: March 11, 1992
- X;;
- X;; by Geoffrey P. Coco at the HITLab, Seattle
- X;;-----------------------------------------------------------
- X
- X
- X
- X;;-----------------------------------------------------------
- X;; Copyright (C) 1992 Human Interface Technology Lab, Seattle
- X;;-----------------------------------------------------------
- X
- X
- X
- X;;-----------------------------------------------------------
- X;; Module Initialization
- X;;-----------------------------------------------------------
- X
- X;; FERN
- X(load "/home/veos/lisp/fern")
- X
- X;; The Universal Motivator Engine
- X(setq load-path "/home/colin/")
- X(load "um-engine")
- X
- X
- X
- X;;-----------------------------------------------------------
- X;; Define Behavior
- X;;-----------------------------------------------------------
- X
- X(setq sane t)
- X
- X(defun do-sane ()
- X (cond (sane (system "sleep 2"))))
- X
- X
- X
- X;;-----------------------------------------------------------
- X;; Instill Behavior
- X;;-----------------------------------------------------------
- X
- X(fcon-add-persist-proc "dot" '(printf "persist.."))
- X(fcon-add-persist-proc "sanity" '(do-sane))
- X(fcon-add-react-proc "dump" '(pprint (fe-copy.ext.sibs)))
- X
- X
- X
- X;;-----------------------------------------------------------
- X;; Begin
- X;;-----------------------------------------------------------
- X
- X(fcon-go)
- END_OF_FILE
- if test 1439 -ne `wc -c <'lisp/tabula_rasa.lsp'`; then
- echo shar: \"'lisp/tabula_rasa.lsp'\" unpacked with wrong size!
- fi
- # end of 'lisp/tabula_rasa.lsp'
- fi
- if test -f 'lisp/test_rpc.lsp' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'lisp/test_rpc.lsp'\"
- else
- echo shar: Extracting \"'lisp/test_rpc.lsp'\" \(353 characters\)
- sed "s/^X//" >'lisp/test_rpc.lsp' <<'END_OF_FILE'
- X(setq self (vinit))
- X
- X
- X(defun go (other)
- X (read-time)
- X (do ((times 0))
- X ((> times 1000)
- X (printf1 "total time: ") (printf (read-time)))
- X
- X (vthrow `(,other) `(vthrow '(,self) "message"))
- X (do ()
- X ((vcatch))
- X (vtask))
- X
- X (setq times (1+ times))
- X ))
- X
- X
- X(defun gone ()
- X (loop
- X (vtask)
- X (eval (vcatch))
- X ))
- X
- X
- END_OF_FILE
- if test 353 -ne `wc -c <'lisp/test_rpc.lsp'`; then
- echo shar: \"'lisp/test_rpc.lsp'\" unpacked with wrong size!
- fi
- # end of 'lisp/test_rpc.lsp'
- fi
- if test ! -d 'src' ; then
- echo shar: Creating directory \"'src'\"
- mkdir 'src'
- fi
- if test ! -d 'src/include' ; then
- echo shar: Creating directory \"'src/include'\"
- mkdir 'src/include'
- fi
- if test ! -d 'src/kernel_current' ; then
- echo shar: Creating directory \"'src/kernel_current'\"
- mkdir 'src/kernel_current'
- fi
- if test ! -d 'src/kernel_current/fern' ; then
- echo shar: Creating directory \"'src/kernel_current/fern'\"
- mkdir 'src/kernel_current/fern'
- fi
- if test -f 'src/kernel_current/fern/fcon.lsp' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/kernel_current/fern/fcon.lsp'\"
- else
- echo shar: Extracting \"'src/kernel_current/fern/fcon.lsp'\" \(2705 characters\)
- sed "s/^X//" >'src/kernel_current/fern/fcon.lsp' <<'END_OF_FILE'
- X;;-----------------------------------------------------------
- X;; file: fcon.lsp
- X;;
- X;; FERN is the Fractal Entity Relativity Node.
- X;; This file is the control flow compenent of the Fern System.
- X;;
- X;; creation: February 28, 1992
- X;;
- X;; by Geoffrey P. Coco at the HITLab, Seattle
- X;;-----------------------------------------------------------
- X
- X;;-----------------------------------------------------------
- X;; Copyright (C) 1992 Geoffrey P. Coco,
- X;; Human Interface Technology Lab, Seattle
- X;;-----------------------------------------------------------
- X
- X
- X;;-----------------------------------------------------------
- X#|
- X
- XThese functions manage fern-entity lisp code flow. They
- Xcompose the program control component of the Fern System and
- Xare collectively termed FCON.
- X
- XPrimarily, the FCON handles local behavior code management.
- X
- X|#
- X;;-----------------------------------------------------------
- X
- X
- X
- X;;-----------------------------------------------------------
- X;; FCON Public Functions
- X;;-----------------------------------------------------------
- X
- X
- X;; pass "name" and '(function-call with args)
- X(defun fcon-add-react-proc (proc-name func)
- X (progn
- X (fcon-delete-react-proc proc-name)
- X (setf react-procs (append react-procs (list (list proc-name func))))
- X ))
- X
- X;; pass "name" and '(function-call with args)
- X(defun fcon-add-persist-proc (proc-name func)
- X (progn
- X (fcon-delete-persist-proc proc-name)
- X (setf persist-procs (append persist-procs (list (list proc-name func))))
- X ))
- X
- X;; pass name
- X(defun fcon-delete-react-proc (proc-name)
- X (setq react-procs
- X (delete proc-name react-procs :test (lambda (x y) (equal x (car y))))))
- X
- X;; pass name
- X(defun fcon-delete-persist-proc (proc-name)
- X (setq persist-procs
- X (delete proc-name persist-procs :test (lambda (x y) (equal x (car y))))))
- X
- X;;-----------------------------------------------------------
- X
- X(defun fcon-ungo (uid)
- X (vthrow (list uid) (list 'fcon-local-ungo)))
- X
- X;;-----------------------------------------------------------
- X
- X
- X
- X;;-----------------------------------------------------------
- X;; FCON private functions
- X;;-----------------------------------------------------------
- X
- X
- X;;-----------------------------------------------------------
- X
- X(defun fcon-init ()
- X (progn
- X (setq persist-procs ()
- X react-procs ())
- X t))
- X
- X;;-----------------------------------------------------------
- X
- X(defun fcon-persist ()
- X (progn
- X ;; update physical boundary from hardware
- X (fph-perceive)
- X
- X ;; do actual persisting
- X (do-procs persist-procs)
- X
- X ;; update hardware from physical boundary
- X (fph-exude)
- X ))
- X
- X(defun fcon-react ()
- X (do-procs react-procs))
- X
- X;;-----------------------------------------------------------
- X
- X
- X
- END_OF_FILE
- if test 2705 -ne `wc -c <'src/kernel_current/fern/fcon.lsp'`; then
- echo shar: \"'src/kernel_current/fern/fcon.lsp'\" unpacked with wrong size!
- fi
- # end of 'src/kernel_current/fern/fcon.lsp'
- fi
- if test -f 'src/kernel_current/fern/fe.lsp' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/kernel_current/fern/fe.lsp'\"
- else
- echo shar: Extracting \"'src/kernel_current/fern/fe.lsp'\" \(3080 characters\)
- sed "s/^X//" >'src/kernel_current/fern/fe.lsp' <<'END_OF_FILE'
- X;;-----------------------------------------------------------
- X;; file: fe.lsp
- X;;
- X;; FERN is the Fractal Entity Relativity Node.
- X;; This file is the entity component of the Fern System.
- X;;
- X;; creation: February 28, 1992
- X;;
- X;; by Geoffrey P. Coco at the HITLab, Seattle
- X;;-----------------------------------------------------------
- X
- X;;-----------------------------------------------------------
- X;; Copyright (C) 1992 Geoffrey P. Coco,
- X;; Human Interface Technology Lab, Seattle
- X;;-----------------------------------------------------------
- X
- X;;-----------------------------------------------------------
- X#|
- X
- XThese functions perform all local database operations are
- Xcollectively termed the FE.
- X
- XThe FE maintains the "perc" grouplspace partition. That is,
- Xall data associated with the Fern System is passed through
- Xthese functions to the grouplespace.
- X
- XInternally, the Fern System uses these functions exclusively.
- XAnd, in the interest of forward compatibility, Fern
- Xprogrammers are highly encouraged to use these functions
- Xexclusively to access Fern's "perc" grouplespace partition.
- X
- X|#
- X;;-----------------------------------------------------------
- X
- X
- X
- X;;-----------------------------------------------------------
- X;; Load FE Subcomponents
- X;;-----------------------------------------------------------
- X
- X(load "fe_ext")
- X(load "fe_bnd")
- X(load "fe_int")
- X(load "fe_locl")
- X
- X;;-----------------------------------------------------------
- X
- X
- X
- X
- X;;===========================================================
- X;;
- X;; FE PRIVATE FUNCTIONS
- X;;
- X;;===========================================================
- X
- X
- X;;-----------------------------------------------------------
- X#|
- Xall FE functions assume that the partitions are setup like
- Xthis. That is, for any FE functions to work properly, the
- X"perc" partition must be fully articulated.
- X
- XA full "perc" partition contains the three subpartitions:
- X"external", "boundary", "internal". Furthermore, those
- Xsubpartitions must contain their respective sub-partitions.
- X
- XAn empty but articulated perception partition looks like:
- X
- X("perc"
- X
- X (;external
- X () ;spaces
- X () ;siblings
- X () ;filters
- X )
- X
- X (;boundary
- X () ;virtual
- X () ;physical
- X )
- X
- X (;internal
- X () ;local
- X () ;sublings
- X () ;filters
- X )
- X
- X )
- X
- X|#
- X
- X(defun fe-init ()
- X (progn
- X ;; setup the "perception" grouplespace partition.
- X (put-gspace-partition '("perc"
- X () ;; external
- X () ;; boundary
- X () ;; internal
- X ))
- X
- X ;; setup "external" sub-partitions.
- X (fe-put.ext '(() ;; current spaces.
- X () ;; siblings among all spaces.
- X () ;; perceptual filters.
- X ))
- X
- X ;; setup "boundary" sub-partitions.
- X (fe-put.bndry (list self ;; self uid.
- X () ;; virtual object-list.
- X () ;; physical object-list.
- X ))
- X
- X ;; setup "internal" sub-partitions.
- X (fe-put.int '(() ;; local memory
- X () ;; the space for the entity's internal world
- X () ;; the filters for each contained entity
- X ))
- X ))
- X
- X;;-----------------------------------------------------------
- END_OF_FILE
- if test 3080 -ne `wc -c <'src/kernel_current/fern/fe.lsp'`; then
- echo shar: \"'src/kernel_current/fern/fe.lsp'\" unpacked with wrong size!
- fi
- # end of 'src/kernel_current/fern/fe.lsp'
- fi
- if test -f 'src/kernel_current/fern/fe_locl.lsp' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/kernel_current/fern/fe_locl.lsp'\"
- else
- echo shar: Extracting \"'src/kernel_current/fern/fe_locl.lsp'\" \(2295 characters\)
- sed "s/^X//" >'src/kernel_current/fern/fe_locl.lsp' <<'END_OF_FILE'
- X;
- X; local.lsp
- X;
- X; Copyright (C) 1992 Washington Technology Center
- X;
- X; by Andrew MacDonald at the HITLab
- X;
- X; object caching in the local workspace
- X;
- X; this is based on fe_bnd.lsp and fe_int.lsp, and manipulates objects
- X; in perc.int.locl
- X;
- X; functions are of the form fe-(put|get|copy).int.locl.(accessors),
- X; with macros of the form lo-(put|get|copy).(accessors) defined
- X; for each function
- X;
- X;;-----------------------------------------------------------
- X;; file: fe.lsp
- X;; by Geoffrey P. Coco at the HITLab, Seattle
- X;;-----------------------------------------------------------
- X
- X;;-----------------------------------------------------------
- X;; Copyright (C) 1992 Human Interface Technology Lab, Seattle
- X;;-----------------------------------------------------------
- X
- X
- X;;===========================================================
- X;; Show Local Object Space
- X;;===========================================================
- X
- X(defun lo-dump ()
- X (pprint (fe-copy.int.locl)))
- X
- X(defun lo-empty ()
- X (pprint (fe-xtrct.int.locl)))
- X
- X;;===========================================================
- X;; Macro Shortcuts
- X;;===========================================================
- X
- X(defmacro lo-jam-ob (ob)
- X `(fe-jam.int.locl.ob ,ob))
- X
- X(defmacro lo-put-ob (ob)
- X `(fe-put.int.locl.ob ,ob))
- X
- X(defmacro lo-copy-ob (ob-name)
- X `(fe-copy.int.locl.ob ,ob-name))
- X
- X(defmacro lo-get-ob (ob-name)
- X `(fe-get.int.locl.ob ,ob-name))
- X
- X;----------------------------------------------------------------
- X
- X(defmacro lo-copy-ob-names ()
- X '(fe-copy.int.locl.ob.names))
- X
- X;----------------------------------------------------------------
- X
- X(defmacro lo-jab-attr (ob-name attr)
- X `(fe-jam.int.locl.ob.attr ,ob-name ,attr))
- X
- X(defmacro lo-put-attr (ob-name attr)
- X `(fe-put.int.locl.ob.attr ,ob-name ,attr))
- X
- X;----------------------------------------------------------------
- X
- X(defmacro lo-get-attr (ob-name attr-name)
- X `(fe-get.int.locl.ob.attr ,ob-name ,attr-name))
- X
- X;----------------------------------------------------------------
- X
- X(defmacro lo-copy-attr (ob-name attr-name)
- X `(fe-copy.int.locl.ob.attr ,ob-name ,attr-name))
- X
- X(defmacro lo-copy-attr-names (ob-name)
- X `(fe-copy.int.locl.ob.attr.names ,ob-name))
- X
- X(defmacro lo-copy-attr-val (ob-name attr-name)
- X `(fe-copy.int.locl.ob.attr.val ,ob-name ,attr-name))
- X
- END_OF_FILE
- if test 2295 -ne `wc -c <'src/kernel_current/fern/fe_locl.lsp'`; then
- echo shar: \"'src/kernel_current/fern/fe_locl.lsp'\" unpacked with wrong size!
- fi
- # end of 'src/kernel_current/fern/fe_locl.lsp'
- fi
- if test -f 'src/kernel_current/fern/fph.lsp' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/kernel_current/fern/fph.lsp'\"
- else
- echo shar: Extracting \"'src/kernel_current/fern/fph.lsp'\" \(2467 characters\)
- sed "s/^X//" >'src/kernel_current/fern/fph.lsp' <<'END_OF_FILE'
- X;;-----------------------------------------------------------
- X;; file: fph.lsp
- X;;
- X;; FERN is the Fractal Entity Relativity Node.
- X;; This file is the FPH compenent of the Fern System.
- X;;
- X;; creation: March 28, 1992
- X;;
- X;; by Geoffrey P. Coco at the HITLab, Seattle
- X;;-----------------------------------------------------------
- X
- X;;-----------------------------------------------------------
- X;; Copyright (C) 1992 Geoffrey P. Coco,
- X;; Human Interface Technology Lab, Seattle
- X;;-----------------------------------------------------------
- X
- X
- X;;-----------------------------------------------------------
- X#|
- X
- XThese functions provide users of the Fern System with a
- Xstandardized mechanism for coupling hardware-specific
- Xinterface code to objects in the 'physical' boundary. They
- Xrepresent the FPH component of the Fern System.
- X
- X|#
- X;;-----------------------------------------------------------
- X
- X
- X;;===========================================================
- X;;
- X;; FPH PUBLIC FUNCTIONS
- X;;
- X;;===========================================================
- X
- X;; pass "name" and '(function-call with args)
- X(defun fph-add-input-proc (proc-name func)
- X (progn
- X (fph-delete-input-proc proc-name)
- X (setf pre-persist-procs (append pre-persist-procs (list (list proc-name func))))
- X ))
- X
- X;; pass "name" and '(function-call with args)
- X(defun fph-add-output-proc (proc-name func)
- X (progn
- X (fph-delete-output-proc proc-name)
- X (setf post-persist-procs (append post-persist-procs (list (list proc-name func))))
- X ))
- X
- X;; pass name
- X(defun fph-delete-input-proc (proc-name)
- X (setq pre-persist-procs
- X (delete proc-name pre-persist-procs :test (lambda (x y) (equal x (car y))))))
- X
- X;; pass name
- X(defun fph-delete-output-proc (proc-name)
- X (setq post-persist-procs
- X (delete proc-name post-persist-procs :test (lambda (x y) (equal x (car y))))))
- X
- X
- X;;===========================================================
- X;;
- X;; FPH PRIVATE FUNCTIONS
- X;;
- X;;===========================================================
- X
- X
- X;;-----------------------------------------------------------
- X
- X(defun fph-init ()
- X (setq pre-persist-procs ()
- X post-persist-procs ())
- X )
- X
- X;;-----------------------------------------------------------
- X
- X;; update physical boundary from hardware
- X(defun fph-perceive ()
- X (do-procs pre-persist-procs)
- X )
- X
- X;; update hardware from physical boundary
- X(defun fph-exude ()
- X (do-procs post-persist-procs)
- X )
- X;;-----------------------------------------------------------
- X
- X
- X
- END_OF_FILE
- if test 2467 -ne `wc -c <'src/kernel_current/fern/fph.lsp'`; then
- echo shar: \"'src/kernel_current/fern/fph.lsp'\" unpacked with wrong size!
- fi
- # end of 'src/kernel_current/fern/fph.lsp'
- fi
- if test -f 'src/kernel_current/fern/load_bal.lsp' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/kernel_current/fern/load_bal.lsp'\"
- else
- echo shar: Extracting \"'src/kernel_current/fern/load_bal.lsp'\" \(2025 characters\)
- sed "s/^X//" >'src/kernel_current/fern/load_bal.lsp' <<'END_OF_FILE'
- X;;-----------------------------------------------------------
- X;; file: fbal.lsp
- X;;
- X;; FERN is the Fractal Entity Relativity Node.
- X;; This file is the Load Balancing module of the Fern System.
- X;;
- X;; creation: February 28, 1992
- X;;
- X;; by Geoffrey P. Coco at the HITLab, Seattle
- X;;-----------------------------------------------------------
- X
- X;;-----------------------------------------------------------
- X;; Copyright (C) 1992 Human Interface Technology Lab, Seattle
- X;;-----------------------------------------------------------
- X
- X
- X;;-----------------------------------------------------------
- X#|
- X
- XThese functions provide transparent load-balancing for Fern
- XEntities and compose the Load Balancing (or FBAL) component
- Xof the Fern System.
- X
- XThe FBAL component ensures that the various computational
- Xrequirements of a running scenario are evenly distributed
- Xacross the local area network workstations.
- X
- XSimply, entity computational requirements are rated with a
- Xscalar, as are hardware capabilities. Also important are the
- Xhardware peripheral requirements an entity.
- X
- XThese factors are rules for inferencing on which local
- Xnetwork host to place the next entity. The one local-area
- XFBAL entity (the universe, by convention) maintains the
- Xdynamic database of network-node/entity-load information.
- X
- XNo dynamic balancing is projected (i.e. migrating entities).
- X
- X|#
- X;;-----------------------------------------------------------
- X
- X
- X
- X;;-----------------------------------------------------------
- X;; FBAL Private Functions
- X;;-----------------------------------------------------------
- X
- X(define fbal-init ()
- X (progn
- X (vget '(> ("balance" @@) **))
- X (vput '("balance" () ()) '(^ @@))
- X
- X ))
- X
- X
- X(defun fbal-make-node (binary program)
- X (vthrow (list universe) `(fbal-remote-new-make-node binary
- X program
- X ,self))
- X )
- X
- X
- X(defun fbal-remote-make-node (binary program ancestor)
- X (fcon-make-node (fbal-avail-host binary program) binary program ancestor)
- X )
- X
- X
- X(defun fbal-avail-host (binary program)
- X
- X )
- X
- X
- X
- X
- END_OF_FILE
- if test 2025 -ne `wc -c <'src/kernel_current/fern/load_bal.lsp'`; then
- echo shar: \"'src/kernel_current/fern/load_bal.lsp'\" unpacked with wrong size!
- fi
- # end of 'src/kernel_current/fern/load_bal.lsp'
- fi
- if test -f 'src/kernel_current/fern/zoot.lsp' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/kernel_current/fern/zoot.lsp'\"
- else
- echo shar: Extracting \"'src/kernel_current/fern/zoot.lsp'\" \(333 characters\)
- sed "s/^X//" >'src/kernel_current/fern/zoot.lsp' <<'END_OF_FILE'
- X(read-time)
- X(do ((i 0))
- X ((> i 10000) t)
- X
- X (let* ((a (+ 1 2))
- X (b (+ a 1)))
- X
- X (+ a b))
- X (setq i (1+ i))
- X )
- X(printf "time after let loop: " (read-time))
- X
- X(do ((i 0))
- X ((> i 10000) t)
- X
- X (setq a (+ 1 2))
- X (setq b (+ a 1))
- X (+ a b)
- X (setq i (1+ i))
- X )
- X
- X(printf "time after setq loop: " (read-time))
- END_OF_FILE
- if test 333 -ne `wc -c <'src/kernel_current/fern/zoot.lsp'`; then
- echo shar: \"'src/kernel_current/fern/zoot.lsp'\" unpacked with wrong size!
- fi
- # end of 'src/kernel_current/fern/zoot.lsp'
- fi
- if test ! -d 'src/kernel_current/include' ; then
- echo shar: Creating directory \"'src/kernel_current/include'\"
- mkdir 'src/kernel_current/include'
- fi
- if test -f 'src/kernel_current/include/fern.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/kernel_current/include/fern.h'\"
- else
- echo shar: Extracting \"'src/kernel_current/include/fern.h'\" \(1899 characters\)
- sed "s/^X//" >'src/kernel_current/include/fern.h' <<'END_OF_FILE'
- X/****************************************************************************************
- X * file: fern.h *
- X * *
- X * February 25, 1992: implementation of the Fractal Entity Relativity Node for veos. *
- X * *
- X * by Geoffrey P. Coco at the HITLab, Seattle. *
- X * *
- X ****************************************************************************************/
- X
- X/****************************************************************************************
- X * Copyright (C) 1992 Human Interface Technology Lab, Seattle *
- X ****************************************************************************************/
- X
- X
- X/*--------------------------------------------------------------------------------*
- X Useful Externs
- X *--------------------------------------------------------------------------------*/
- X
- Xextern LVAL xsendmsg0();
- Xextern LVAL s_unbound;
- Xextern LVAL true;
- Xextern LVAL s_stderr;
- Xextern LVAL s_quote;
- X
- Xextern void Native_NextMsg();
- X
- X/*--------------------------------------------------------------------------------*
- X Fern Data Structures
- X *--------------------------------------------------------------------------------*/
- X
- Xtypedef struct stmpnode {
- X
- X str63 sHost;
- X int iPort;
- X float fData;
- X struct stmpnode *pNext;
- X
- X } TStampEntRec,
- X *TPStampEntRec,
- X **THStampEntRec;
- X
- Xtypedef TPStampEntRec TStampEntHash[13];
- X
- X/*--------------------------------------------------------------------------------*
- X Defines
- X *--------------------------------------------------------------------------------*/
- X
- X#define FBASE_HASH_HOST(sHost) ((sHost[0] - 'a') / 2)
- X#define FBASE_HASH_HIT(pXVect, pFNode) \
- X(getfixnum(getelement(pXVect, 1)) == (pFNode)->iPort && \
- X strcmp(getstring(getelement(pXVect, 0)), (pFNode)->sHost) == 0)
- X
- X/*--------------------------------------------------------------------------------*/
- END_OF_FILE
- if test 1899 -ne `wc -c <'src/kernel_current/include/fern.h'`; then
- echo shar: \"'src/kernel_current/include/fern.h'\" unpacked with wrong size!
- fi
- # end of 'src/kernel_current/include/fern.h'
- fi
- if test -f 'src/kernel_current/include/fern_prims.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/kernel_current/include/fern_prims.h'\"
- else
- echo shar: Extracting \"'src/kernel_current/include/fern_prims.h'\" \(1892 characters\)
- sed "s/^X//" >'src/kernel_current/include/fern_prims.h' <<'END_OF_FILE'
- X/****************************************************************************************
- X * file: fern_prims.h *
- X * *
- X * February 25, 1992: implementation of the Fractal Entity Relativity Node for veos. *
- X * *
- X * by Geoffrey P. Coco at the HITLab, Seattle. *
- X * *
- X ****************************************************************************************/
- X
- X/****************************************************************************************
- X * Copyright (C) 1992 Human Interface Technology Lab, Seattle *
- X ****************************************************************************************/
- X
- X
- X/*--------------------------------------------------------------------------------*/
- X
- X#ifdef FERN_LOAD
- X
- XDEFINE_SUBR("FCON-GO", Fbase_fcon_go)
- XDEFINE_SUBR("FCON-LOCAL-UNGO", Fbase_fcon_local_ungo)
- XDEFINE_SUBR("FCON-TIME", Fbase_fcon_time)
- XDEFINE_SUBR("FBASE-INIT", Fbase_Init)
- XDEFINE_SUBR("FBASE-NEW-HTAB", Fbase_Hash_NewTab)
- XDEFINE_SUBR("FBASE-PUT-HASH", Fbase_Hash_AddUid)
- XDEFINE_SUBR("FBASE-GET-HASH", Fbase_Hash_RemoveUid)
- XDEFINE_SUBR("FBASE-HASH", Fbase_Hash_HashUid)
- XDEFINE_SUBR("FE-COPY.INT.SUBS", Fbase_CopyIntSubs)
- XDEFINE_SUBR("FBASE-INIT-COPY.INT.SUBS", Fbase_Init_CopyIntSubs)
- XDEFINE_SUBR("FE-COPY.BNDRY.VRT", Fbase_CopyBndryVrt)
- XDEFINE_SUBR("FBASE-INIT-COPY.BNDRY.VRT", Fbase_Init_CopyBndryVrt)
- X
- X#endif
- X
- X
- X#ifdef FERN_DEFS
- X
- Xextern LVAL Fbase_fcon_go();
- Xextern LVAL Fbase_fcon_local_ungo();
- Xextern LVAL Fbase_fcon_time();
- Xextern LVAL Fbase_Init();
- Xextern LVAL Fbase_Hash_NewTab();
- Xextern LVAL Fbase_Hash_AddUid();
- Xextern LVAL Fbase_Hash_RemoveUid();
- Xextern LVAL Fbase_Hash_HashUid();
- Xextern LVAL Fbase_CopyIntSubs();
- Xextern LVAL Fbase_CopyBndryVrt();
- Xextern LVAL Fbase_Init_CopyIntSubs();
- Xextern LVAL Fbase_Init_CopyBndryVrt();
- X
- X#endif
- X
- X/*--------------------------------------------------------------------------------*/
- END_OF_FILE
- if test 1892 -ne `wc -c <'src/kernel_current/include/fern_prims.h'`; then
- echo shar: \"'src/kernel_current/include/fern_prims.h'\" unpacked with wrong size!
- fi
- # end of 'src/kernel_current/include/fern_prims.h'
- fi
- if test -f 'src/kernel_current/include/xv_native_prims.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/kernel_current/include/xv_native_prims.h'\"
- else
- echo shar: Extracting \"'src/kernel_current/include/xv_native_prims.h'\" \(1763 characters\)
- sed "s/^X//" >'src/kernel_current/include/xv_native_prims.h' <<'END_OF_FILE'
- X/****************************************************************************************
- X * *
- X * file: xv_native_prims.h *
- X * *
- X * the xlisp include file for integration with VEOS native prims. *
- X * *
- X * creation: December, 1991 *
- X * *
- X * *
- X * by Geoffrey P. Coco at the HITLab, Seattle. *
- X * *
- X ****************************************************************************************/
- X
- X/****************************************************************************************
- X * Copyright (C) 1992 Geoffrey P. Coco, Human Interface Technology Lab, Seattle *
- X ****************************************************************************************/
- X
- X
- X
- X/****************************************************************************************/
- X
- X#ifdef VEOS_NATIVE_LOAD
- X
- XDEFINE_SUBR("VPUT", Native_Put )
- XDEFINE_SUBR("VGET", Native_Get )
- XDEFINE_SUBR("VCOPY", Native_Copy )
- XDEFINE_SUBR("VINIT", Native_Init )
- XDEFINE_SUBR("VCLOSE", Native_Close )
- XDEFINE_SUBR("VTASK", Native_Task )
- XDEFINE_SUBR("VTHROW", Native_Throw )
- XDEFINE_SUBR("VCATCH", Native_Catch )
- XDEFINE_SUBR("VNOSIGNALS", Native_NoSignals )
- XDEFINE_SUBR("VBUGS", Native_Bugs )
- XDEFINE_SUBR("VZOOT", Native_Zoot )
- XDEFINE_SUBR("VMINTIME", Native_MinTime )
- X
- X#endif
- X
- X
- X#ifdef VEOS_NATIVE_DEFS
- X
- Xextern LVAL Native_Put();
- Xextern LVAL Native_Get();
- Xextern LVAL Native_Copy();
- Xextern LVAL Native_Init();
- Xextern LVAL Native_Close();
- Xextern LVAL Native_Task();
- Xextern LVAL Native_Throw();
- Xextern LVAL Native_Catch();
- Xextern LVAL Native_NoSignals();
- Xextern LVAL Native_Bugs();
- Xextern LVAL Native_Zoot();
- Xextern LVAL Native_MinTime();
- X
- X#endif
- X
- X/****************************************************************************************/
- END_OF_FILE
- if test 1763 -ne `wc -c <'src/kernel_current/include/xv_native_prims.h'`; then
- echo shar: \"'src/kernel_current/include/xv_native_prims.h'\" unpacked with wrong size!
- fi
- # end of 'src/kernel_current/include/xv_native_prims.h'
- fi
- if test ! -d 'src/kernel_current/nancy' ; then
- echo shar: Creating directory \"'src/kernel_current/nancy'\"
- mkdir 'src/kernel_current/nancy'
- fi
- if test ! -d 'src/kernel_current/shell' ; then
- echo shar: Creating directory \"'src/kernel_current/shell'\"
- mkdir 'src/kernel_current/shell'
- fi
- if test -f 'src/kernel_current/shell/main.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/kernel_current/shell/main.c'\"
- else
- echo shar: Extracting \"'src/kernel_current/shell/main.c'\" \(1899 characters\)
- sed "s/^X//" >'src/kernel_current/shell/main.c' <<'END_OF_FILE'
- X/****************************************************************************************
- X * *
- X * file: main.c *
- X * *
- X * An example controlling of veos using xlisp interface. *
- X * *
- X * creation: December, 1991 *
- X * *
- X * *
- X * by Geoffrey P. Coco at the HITLab, Seattle. *
- X * *
- X ****************************************************************************************/
- X
- X/****************************************************************************************
- X * Copyright (C) 1992 Geoffrey P. Coco, Human Interface Technology Lab, Seattle *
- X ****************************************************************************************/
- X
- X
- X#include "world.h"
- X
- Xextern xmain();
- X
- X
- X/****************************************************************************************
- X * main
- X * launchpad of any stand-alone program
- X ****************************************************************************************/
- Xmain(argc, argv)
- X int argc;
- X char *argv[];
- X{
- X /** call the xlisp controller, never returns **/
- X xmain(argc, argv);
- X }
- X
- X
- X/****************************************************************************************
- X * xlinclude_hybrid_prims
- X * lisp calls this function to load user-defined lisp primitives
- X ****************************************************************************************/
- Xxlinclude_hybrid_prims()
- X{
- X /** load veos native lisp primitive entries **/
- X Shell_LoadNativePrims();
- X Fern_LoadPrims();
- X XVUtils_LoadPrims();
- X }
- X
- X
- X
- X/****************************************************************************************
- X * xlshutdown_hybrid
- X * lisp calls this function before graceful exit
- X ****************************************************************************************/
- Xxlshutdown_hybrid()
- X{
- X /** let the kernel unwind **/
- X Kernel_Shutdown();
- X }
- X
- X
- X
- X
- END_OF_FILE
- if test 1899 -ne `wc -c <'src/kernel_current/shell/main.c'`; then
- echo shar: \"'src/kernel_current/shell/main.c'\" unpacked with wrong size!
- fi
- # end of 'src/kernel_current/shell/main.c'
- fi
- if test ! -d 'src/kernel_current/talk' ; then
- echo shar: Creating directory \"'src/kernel_current/talk'\"
- mkdir 'src/kernel_current/talk'
- fi
- if test -f 'src/machine_specific.mk' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/machine_specific.mk'\"
- else
- echo shar: Extracting \"'src/machine_specific.mk'\" \(1367 characters\)
- sed "s/^X//" >'src/machine_specific.mk' <<'END_OF_FILE'
- X# ***************************************************************************************
- X# Copyright (C) 1992 Human Interface Technology Lab, Seattle *
- X# *
- X# This program is free software; you can redistribute it and/or modify *
- X# it under the terms of the VEOS License which cab be found in file *
- X# VEOS_LICENSE in the root of the veos directory tree. *
- X# *
- X# This program is distributed in the hope that it will be useful, *
- X# but WITHOUT ANY WARRANTY; without even the implied warranty of *
- X# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- X# VEOS License for more details. *
- X# *
- X# Questions about this software should be addressed to: *
- X# *
- X# Software Support *
- X# Human Interface Technology Laboratory *
- X# FJ-15, University of Washington *
- X# Seattle, Washington 98195 USA *
- X# *
- X# or by email: *
- X# *
- X# veos-support@hitl.washington.edu *
- X# *
- X# ***************************************************************************************
- X
- X
- X# use these for Sun4
- X
- XUPDATE_LIB = ranlib
- X#CC = /usr/gnu/bin/gcc -O4 -w ${VEOS_INCLUDE_DIRS} -D_SUN_
- X#AR = /usr/gnu/bin/ar rcv
- XCC = cc -g -Bstatic -w ${VEOS_INCLUDE_DIRS} -D_SUN_
- XAR = ar rcv
- XASSOC_LIBS = -lm
- X
- END_OF_FILE
- if test 1367 -ne `wc -c <'src/machine_specific.mk'`; then
- echo shar: \"'src/machine_specific.mk'\" unpacked with wrong size!
- fi
- # end of 'src/machine_specific.mk'
- fi
- if test ! -d 'src/utils' ; then
- echo shar: Creating directory \"'src/utils'\"
- mkdir 'src/utils'
- fi
- if test -f 'src/utils/error_check.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/utils/error_check.c'\"
- else
- echo shar: Extracting \"'src/utils/error_check.c'\" \(1186 characters\)
- sed "s/^X//" >'src/utils/error_check.c' <<'END_OF_FILE'
- X/* error_check.c
- X
- X by Fran Taylor, at the HITLab, Seattle
- X
- X Copyright (C) 1992 Human Interface Technology Lab, Seattle
- X
- X Error checking functions for Xlisp functions written in C */
- X
- X#include "xlisp.h"
- X
- Xint triplep(v)
- XLVAL v;
- X{
- X int i;
- X if (!vectorp(v) || (getsz(v) != 3))
- X return 0;
- X for(i = 0; i < 3; i++)
- X if (!floatp(getelement(v, i)))
- X return 0;
- X return 1;
- X}
- X
- Xint quaternionp(v)
- XLVAL v;
- X{
- X LVAL p;
- X int i;
- X
- X if (!vectorp(v) || (getsz(v) != 2) || !floatp(getelement(v, 0)))
- X return 0;
- X if (!vectorp(p = getelement(v, 1)) || (getsz(p) != 3))
- X return 0;
- X for(i = 0; i < 3; i++)
- X if (!floatp(getelement(p, i)))
- X return 0;
- X return 1;
- X}
- X
- Xint pt_quatp(x)
- XLVAL x;
- X{
- X if (!vectorp(x) || (getsz(x) != 2) || !triplep(getelement(x, 0)) ||
- X !quaternionp(getelement(x, 1)))
- X return 0;
- X return 1;
- X}
- X
- Xint pt_eulerp(x)
- XLVAL x;
- X{
- X if (!vectorp(x) || (getsz(x) != 2) || !triplep(getelement(x, 0)) ||
- X !triplep(getelement(x, 1)))
- X return 0;
- X return 1;
- X}
- X
- Xint matrixp(m)
- XLVAL m;
- X{
- X int i;
- X
- X if (!vectorp(m) || (getsz(m) != 16))
- X return 0;
- X for(i = 0; i < 16; i++)
- X if (!floatp(getelement(m, i)))
- X return 0;
- X return 1;
- X}
- X
- X
- END_OF_FILE
- if test 1186 -ne `wc -c <'src/utils/error_check.c'`; then
- echo shar: \"'src/utils/error_check.c'\" unpacked with wrong size!
- fi
- # end of 'src/utils/error_check.c'
- fi
- if test -f 'src/utils/makefile' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/utils/makefile'\"
- else
- echo shar: Extracting \"'src/utils/makefile'\" \(1472 characters\)
- sed "s/^X//" >'src/utils/makefile' <<'END_OF_FILE'
- X# ***************************************************************************************
- X# Copyright (C) 1992 Human Interface Technology Lab, Seattle *
- X# ***************************************************************************************
- X
- X
- X#--------------------------------------------------------------------------------------
- X
- XHOME = /home/voodoo/veos/
- X
- XLISP_INCLUDE_DIR = ${HOME}src/xlisp/xcore/c/
- XPUB_INCLUDE_DIR = ${HOME}src/include/
- XVEOS_INCLUDE_DIRS = -I${PUB_INCLUDE_DIR} -I${LISP_INCLUDE_DIR}
- X
- XLISP_LIB_DIR = /home/xlisp/lib/
- XPUB_LIB_DIR = ${HOME}lib/
- X
- XPUB_EXEC_DIR = ${HOME}bin/
- X
- X#--------------------------------------------------------------------------------------
- X
- Xinclude $(HOME)src/machine_specific.mk
- X
- X#--------------------------------------------------------------------------------------
- X
- Xclean:
- X - /bin/rm -f $(UTIL_SRC_DIR)*.o
- X - /bin/rm -f $(PUB_LIB_DIR)libxvutils.a
- X
- X#--------------------------------------------------------------------------------------
- X
- X###
- X### an xlisp utils library
- X###
- X
- Xutils: ${PUB_LIB_DIR}libxvutils.a
- X
- X${PUB_LIB_DIR}libxvutils.a: \
- X ${UTIL_SRC_DIR}xv_utils.o \
- X ${UTIL_SRC_DIR}error_check.o \
- X ${UTIL_SRC_DIR}xform_prims.o
- X ${AR} $@ $?
- X ${UPDATE_LIB} $@
- X
- X#--------------------------------------------------------------------------------------
- X
- X###
- X### miscellaneous .o files
- X###
- X
- X.c.o:
- X ${CC} -c -o $@ $<
- X
- X.c:
- X
- X#--------------------------------------------------------------------------------------
- X
- X
- END_OF_FILE
- if test 1472 -ne `wc -c <'src/utils/makefile'`; then
- echo shar: \"'src/utils/makefile'\" unpacked with wrong size!
- fi
- # end of 'src/utils/makefile'
- fi
- if test -f 'src/utils/xform_prims.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/utils/xform_prims.h'\"
- else
- echo shar: Extracting \"'src/utils/xform_prims.h'\" \(1393 characters\)
- sed "s/^X//" >'src/utils/xform_prims.h' <<'END_OF_FILE'
- X/* xform_prims.h
- X
- X by dav lion, at the HITLab, Seattle
- X
- X Copyright (C) 1992 Human Interface Technology Lab, Seattle
- X
- X xlisp wrappers for C based matrix geometrical transformation routines
- X
- X this code is part of VEOS.
- X*/
- X
- X
- X#ifndef _XFORMH_
- X#define _XFORMH_
- X
- X#include <xlisp.h>
- X
- Xtypedef float Matrix[4][4]; /* 4x4 matrix */
- Xtypedef float Vector[3]; /* Vector */
- Xtypedef float Quaternion[4];
- X
- Xextern LVAL xform01_identMat();
- Xextern LVAL xform02_multMat();
- Xextern LVAL xform03_translateMat();
- Xextern LVAL xform04_PosQuat2Mat();
- Xextern LVAL xform05_scaleMat();
- Xextern LVAL xform06_shearMat();
- Xextern LVAL xform07_copyMat();
- Xextern LVAL xform08_multQuats();
- Xextern LVAL xform09_Mat2PosQuat();
- X
- X/* from vogl distribution
- X * How to convert degrees to radians
- X */
- X#define PI 3.14159265358979
- X#define D2R (PI / 180.0)
- X
- X
- X#define EPSILON 0.000001
- X#define FEPS(a,b) ((a>(b-.0001)) && (a<(b+.0001)))
- X
- Xstatic Matrix mIdentityMatrix = {
- X {1., 0., 0., 0.},
- X {0., 1., 0., 0.,},
- X {0., 0., 1., 0.,},
- X {0., 0., 0., 1.,}
- X };/*identityMatrix*/
- X
- X#define v_float(v, n) getflonum(getelement(v, n))
- X#define m_float(m, i, j) getflonum(getelement(m, (i * 4) + j))
- X#define v_fixnum(v, n) getfixnum(getelement(v, n))
- X
- X#define stuff_fixnum(arg, ind, val) ((arg)->n_vdata[ind])->n_fixnum = (val)
- X#define stuff_flonum(arg, ind, val) ((arg)->n_vdata[ind])->n_flonum = (val)
- X
- X
- X
- X#endif
- END_OF_FILE
- if test 1393 -ne `wc -c <'src/utils/xform_prims.h'`; then
- echo shar: \"'src/utils/xform_prims.h'\" unpacked with wrong size!
- fi
- # end of 'src/utils/xform_prims.h'
- fi
- if test -f 'src/utils/xv_utils.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/utils/xv_utils.h'\"
- else
- echo shar: Extracting \"'src/utils/xv_utils.h'\" \(1172 characters\)
- sed "s/^X//" >'src/utils/xv_utils.h' <<'END_OF_FILE'
- X/****************************************************************************************
- X * *
- X * file: xv_utils.c *
- X * *
- X * Sundry lisp utils for the veos project *
- X * *
- X * creation: March 28, 1991 *
- X * *
- X * *
- X * Includes utilities by: *
- X * *
- X * Geoff Coco *
- X * Dav Lion *
- X * Andy McDonald *
- X * Fran Taylor *
- X * *
- X ****************************************************************************************/
- X
- X
- X/****************************************************************************************
- X * Copyright (C) 1992 Human Interface Technology Lab, Seattle *
- X ****************************************************************************************/
- X
- X
- X#ifdef UTIL_LOAD
- XDEFINE_SUBR("READ-TIME", read_time)
- XDEFINE_SUBR("SPRINTF", native_sprintf )
- XDEFINE_SUBR("PRINTF", native_printf )
- XDEFINE_SUBR("PRINTF1", native_printf1 )
- XDEFINE_SUBR("SSCANF", native_sscanf )
- X#endif
- X
- X#ifdef UTIL_DEFS
- Xextern LVAL read_time();
- Xextern LVAL native_sprintf();
- Xextern LVAL native_printf();
- Xextern LVAL native_printf1();
- Xextern LVAL native_sscanf();
- X#endif
- END_OF_FILE
- if test 1172 -ne `wc -c <'src/utils/xv_utils.h'`; then
- echo shar: \"'src/utils/xv_utils.h'\" unpacked with wrong size!
- fi
- # end of 'src/utils/xv_utils.h'
- fi
- if test ! -d 'src/xlisp' ; then
- echo shar: Creating directory \"'src/xlisp'\"
- mkdir 'src/xlisp'
- fi
- if test -f 'src/xlisp/Makefile' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/xlisp/Makefile'\"
- else
- echo shar: Extracting \"'src/xlisp/Makefile'\" \(363 characters\)
- sed "s/^X//" >'src/xlisp/Makefile' <<'END_OF_FILE'
- X#
- X# "... and one Ring to rule them all."
- X#
- X# Master makefile to build xlisp-plus-selected-extension-modules.
- X#
- X
- Xall: bare
- X
- Xxlisplib:
- X cd xcore/c; $(MAKE) -${MAKEFLAGS} xlisplib
- X
- Xbare: xlisplib
- X cd xexec/c; $(MAKE) -${MAKEFLAGS} bare
- X
- Xclean:
- X cd xcore/c; ${MAKE} -${MAKEFLAGS} clean
- X
- X
- X
- X
- X
- X
- X
- X
- END_OF_FILE
- if test 363 -ne `wc -c <'src/xlisp/Makefile'`; then
- echo shar: \"'src/xlisp/Makefile'\" unpacked with wrong size!
- fi
- # end of 'src/xlisp/Makefile'
- fi
- if test -f 'src/xlisp/Makefile.basic' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/xlisp/Makefile.basic'\"
- else
- echo shar: Extracting \"'src/xlisp/Makefile.basic'\" \(424 characters\)
- sed "s/^X//" >'src/xlisp/Makefile.basic' <<'END_OF_FILE'
- X#
- X# Xlisp compilation control
- X#
- X
- X
- X# The directory you installed the xlisp fileset in:
- XXLISPROOT= /home/voodoo/veos/src/xlisp
- XXLISP_LIB_DIR= $(XLISPROOT)/lib
- X
- XVEOS_LIB_DIR= /home/voodoo/veos/lib
- XVEOS_EXEC_DIR= /home/voodoo/veos/bin
- X
- X
- Xinclude $(XLISPROOT)/Makefile.machine_specific
- X
- XCFLAGS= ${XLISPCFLAGS}
- X
- X.c.o:
- X ${CC} -o -c ${CFLAGS} $< ${INCLUDES}
- X
- Xclean:
- X - /bin/rm -f *.o *~
- X - /bin/rm -f $(XLISP_LIB_DIR)/*.a *~
- X
- X
- X
- END_OF_FILE
- if test 424 -ne `wc -c <'src/xlisp/Makefile.basic'`; then
- echo shar: \"'src/xlisp/Makefile.basic'\" unpacked with wrong size!
- fi
- # end of 'src/xlisp/Makefile.basic'
- fi
- if test -f 'src/xlisp/Makefile.machine_specific' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/xlisp/Makefile.machine_specific'\"
- else
- echo shar: Extracting \"'src/xlisp/Makefile.machine_specific'\" \(326 characters\)
- sed "s/^X//" >'src/xlisp/Makefile.machine_specific' <<'END_OF_FILE'
- X# use these for Sun4
- X
- X
- XCC= cc
- XXLISPCFLAGS= -O2 -w
- X
- X# use -DOPTIMAL for a very fast xlisp interpreter.
- X# this removes all setjmp()s and longjmp()s.
- X# the resulting executable cannot recover from
- X# lisp errors. instead, it will exit gracefully.
- X
- XAR= /usr/gnu/bin/ar
- XXLISPARFLAGS= rv
- X
- XXLISPRANLIB= ranlib
- X
- XLD= /usr/gnu/bin/ld
- X
- END_OF_FILE
- if test 326 -ne `wc -c <'src/xlisp/Makefile.machine_specific'`; then
- echo shar: \"'src/xlisp/Makefile.machine_specific'\" unpacked with wrong size!
- fi
- # end of 'src/xlisp/Makefile.machine_specific'
- fi
- if test ! -d 'src/xlisp/bin' ; then
- echo shar: Creating directory \"'src/xlisp/bin'\"
- mkdir 'src/xlisp/bin'
- fi
- if test ! -d 'src/xlisp/lib' ; then
- echo shar: Creating directory \"'src/xlisp/lib'\"
- mkdir 'src/xlisp/lib'
- fi
- if test ! -d 'src/xlisp/xcore' ; then
- echo shar: Creating directory \"'src/xlisp/xcore'\"
- mkdir 'src/xlisp/xcore'
- fi
- if test ! -d 'src/xlisp/xcore/c' ; then
- echo shar: Creating directory \"'src/xlisp/xcore/c'\"
- mkdir 'src/xlisp/xcore/c'
- fi
- if test -f 'src/xlisp/xcore/c/COPYRIGHT' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/xlisp/xcore/c/COPYRIGHT'\"
- else
- echo shar: Extracting \"'src/xlisp/xcore/c/COPYRIGHT'\" \(1966 characters\)
- sed "s/^X//" >'src/xlisp/xcore/c/COPYRIGHT' <<'END_OF_FILE'
- X********************************************************************************
- X* WINTERP 1.0 Copyright 1989 Hewlett-Packard Company (by Niels Mayer).
- X* XLISP version 2.1, Copyright (c) 1989, by David Betz.
- X*
- X* Permission to use, copy, modify, distribute, and sell this software and its
- X* documentation for any purpose is hereby granted without fee, provided that
- X* the above copyright notice appear in all copies and that both that
- X* copyright notice and this permission notice appear in supporting
- X* documentation, and that the name of Hewlett-Packard and David Betz not be
- X* used in advertising or publicity pertaining to distribution of the software
- X* without specific, written prior permission. Hewlett-Packard and David Betz
- X* make no representations about the suitability of this software for any
- X* purpose. It is provided "as is" without express or implied warranty.
- X*
- X* HEWLETT-PACKARD AND DAVID BETZ DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
- X* SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
- X* IN NO EVENT SHALL HEWLETT-PACKARD NOR DAVID BETZ BE LIABLE FOR ANY SPECIAL,
- X* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- X* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- X* OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- X* PERFORMANCE OF THIS SOFTWARE.
- X*
- X* WINTERP AUTHOR:
- X* Niels P. Mayer,
- X* Hewlett-Packard Laboratories,
- X* Software Technology Lab
- X* Human-Computer Interaction Department
- X* Collaborative Interaction Tools Group
- X*
- X* Mailing Address:
- X* Hewlett Packard
- X* Niels Mayer 1U/17
- X* P.O. Box 10490
- X* Palo Alto, CA 94303-0969
- X*
- X* Email Address:
- X* internet: mayer@hplabs.hp.com
- X* uucp: hplabs!mayer
- X*
- X* XLISP AUTHOR:
- X* David Betz
- X* P.O. Box 144
- X* Peterborough, NH 03458
- X* (603) 924-4145
- X********************************************************************************
- END_OF_FILE
- if test 1966 -ne `wc -c <'src/xlisp/xcore/c/COPYRIGHT'`; then
- echo shar: \"'src/xlisp/xcore/c/COPYRIGHT'\" unpacked with wrong size!
- fi
- # end of 'src/xlisp/xcore/c/COPYRIGHT'
- fi
- if test -f 'src/xlisp/xcore/c/Makefile' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/xlisp/xcore/c/Makefile'\"
- else
- echo shar: Extracting \"'src/xlisp/xcore/c/Makefile'\" \(1207 characters\)
- sed "s/^X//" >'src/xlisp/xcore/c/Makefile' <<'END_OF_FILE'
- X#
- X# Xlisp compilation control
- X#
- X
- X
- X#
- X# Xlisp compilation control
- X#
- X
- X#
- X# Xlisp compilation control
- X#
- X
- Xinclude ../../Makefile.basic
- X
- XXLISP_LIB = $(XLISP_LIB_DIR)/libxlisp.a
- Xxlisplib: $(XLISP_LIB)
- X
- X
- XHEADER=
- XINCLUDES=
- X
- XXLISPLIBOBJS= \
- X $(XLISP_LIB)(unixstuff.o) \
- X $(XLISP_LIB)(xlbfun.o) \
- X $(XLISP_LIB)(xlcont.o) \
- X $(XLISP_LIB)(xldbug.o) \
- X $(XLISP_LIB)(xldmem.o) \
- X $(XLISP_LIB)(xleval.o) \
- X $(XLISP_LIB)(xlfio.o) \
- X $(XLISP_LIB)(xlftab.o) \
- X $(XLISP_LIB)(xlglob.o) \
- X $(XLISP_LIB)(xlimage.o) \
- X $(XLISP_LIB)(xlinit.o) \
- X $(XLISP_LIB)(xlio.o) \
- X $(XLISP_LIB)(xljump.o) \
- X $(XLISP_LIB)(xllist.o) \
- X $(XLISP_LIB)(xlmath.o) \
- X $(XLISP_LIB)(xlobj.o) \
- X $(XLISP_LIB)(xlpp.o) \
- X $(XLISP_LIB)(xlprin.o) \
- X $(XLISP_LIB)(xlread.o) \
- X $(XLISP_LIB)(xlstr.o) \
- X $(XLISP_LIB)(xlstruct.o) \
- X $(XLISP_LIB)(xlsubr.o) \
- X $(XLISP_LIB)(xlsym.o) \
- X $(XLISP_LIB)(xlsys.o) \
- X $(XLISP_LIB)(xmain.o)
- X
- X$(XLISPLIBOBJS): ../../xmodules.h xlisp.h xldmem.h
- X
- X
- X${XLISPLIBOBJS}:
- X ${CC} -c ${CFLAGS} ${INCLUDES} $<
- X ${LD} -r $*.o
- X /bin/mv a.out $*.o
- X ${AR} ${XLISPARFLAGS} $@ $*.o
- X /bin/rm $*.o
- X
- X
- X$(XLISP_LIB): ${XLISPLIBOBJS}
- X ${XLISPRANLIB} $@
- X cp $@ $(VEOS_LIB_DIR)/.
- X ${XLISPRANLIB} $(VEOS_LIB_DIR)/libxlisp.a
- X
- END_OF_FILE
- if test 1207 -ne `wc -c <'src/xlisp/xcore/c/Makefile'`; then
- echo shar: \"'src/xlisp/xcore/c/Makefile'\" unpacked with wrong size!
- fi
- # end of 'src/xlisp/xcore/c/Makefile'
- fi
- if test -f 'src/xlisp/xcore/c/osdefs.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/xlisp/xcore/c/osdefs.h'\"
- else
- echo shar: Extracting \"'src/xlisp/xcore/c/osdefs.h'\" \(2054 characters\)
- sed "s/^X//" >'src/xlisp/xcore/c/osdefs.h' <<'END_OF_FILE'
- X/* -*-C-*-
- X********************************************************************************
- X*
- X* File: osdefs.h
- X* RCS: $Header: osdefs.h,v 1.2 89/11/25 05:08:00 mayer Exp $
- X* Description: system specific function declarations
- X* Author: David Michael Betz
- X* Created:
- X* Modified: Sat Nov 25 05:07:43 1989 (Niels Mayer) mayer@hplnpm
- X* Language: C
- X* Package: N/A
- X* Status: X11r4 contrib tape release
- X*
- X* WINTERP 1.0 Copyright 1989 Hewlett-Packard Company (by Niels Mayer).
- X* XLISP version 2.1, Copyright (c) 1989, by David Betz.
- X*
- X* Permission to use, copy, modify, distribute, and sell this software and its
- X* documentation for any purpose is hereby granted without fee, provided that
- X* the above copyright notice appear in all copies and that both that
- X* copyright notice and this permission notice appear in supporting
- X* documentation, and that the name of Hewlett-Packard and David Betz not be
- X* used in advertising or publicity pertaining to distribution of the software
- X* without specific, written prior permission. Hewlett-Packard and David Betz
- X* make no representations about the suitability of this software for any
- X* purpose. It is provided "as is" without express or implied warranty.
- X*
- X* HEWLETT-PACKARD AND DAVID BETZ DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
- X* SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
- X* IN NO EVENT SHALL HEWLETT-PACKARD NOR DAVID BETZ BE LIABLE FOR ANY SPECIAL,
- X* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- X* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- X* OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- X* PERFORMANCE OF THIS SOFTWARE.
- X*
- X* See ./winterp/COPYRIGHT for information on contacting the authors.
- X*
- X* Please send modifications, improvements and bugfixes to mayer@hplabs.hp.com
- X* Post XLISP-specific questions/information to the newsgroup comp.lang.lisp.x
- X*
- X********************************************************************************
- X*/
- END_OF_FILE
- if test 2054 -ne `wc -c <'src/xlisp/xcore/c/osdefs.h'`; then
- echo shar: \"'src/xlisp/xcore/c/osdefs.h'\" unpacked with wrong size!
- fi
- # end of 'src/xlisp/xcore/c/osdefs.h'
- fi
- if test -f 'src/xlisp/xcore/c/osptrs.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/xlisp/xcore/c/osptrs.h'\"
- else
- echo shar: Extracting \"'src/xlisp/xcore/c/osptrs.h'\" \(2050 characters\)
- sed "s/^X//" >'src/xlisp/xcore/c/osptrs.h' <<'END_OF_FILE'
- X/* -*-C-*-
- X********************************************************************************
- X*
- X* File: osptrs.h
- X* RCS: $Header: osptrs.h,v 1.2 89/11/25 05:10:18 mayer Exp $
- X* Description: system specific function pointers
- X* Author: David Michael Betz
- X* Created:
- X* Modified: Sat Nov 25 05:10:11 1989 (Niels Mayer) mayer@hplnpm
- X* Language: C
- X* Package: N/A
- X* Status: X11r4 contrib tape release
- X*
- X* WINTERP 1.0 Copyright 1989 Hewlett-Packard Company (by Niels Mayer).
- X* XLISP version 2.1, Copyright (c) 1989, by David Betz.
- X*
- X* Permission to use, copy, modify, distribute, and sell this software and its
- X* documentation for any purpose is hereby granted without fee, provided that
- X* the above copyright notice appear in all copies and that both that
- X* copyright notice and this permission notice appear in supporting
- X* documentation, and that the name of Hewlett-Packard and David Betz not be
- X* used in advertising or publicity pertaining to distribution of the software
- X* without specific, written prior permission. Hewlett-Packard and David Betz
- X* make no representations about the suitability of this software for any
- X* purpose. It is provided "as is" without express or implied warranty.
- X*
- X* HEWLETT-PACKARD AND DAVID BETZ DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
- X* SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
- X* IN NO EVENT SHALL HEWLETT-PACKARD NOR DAVID BETZ BE LIABLE FOR ANY SPECIAL,
- X* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- X* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- X* OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- X* PERFORMANCE OF THIS SOFTWARE.
- X*
- X* See ./winterp/COPYRIGHT for information on contacting the authors.
- X*
- X* Please send modifications, improvements and bugfixes to mayer@hplabs.hp.com
- X* Post XLISP-specific questions/information to the newsgroup comp.lang.lisp.x
- X*
- X********************************************************************************
- X*/
- END_OF_FILE
- if test 2050 -ne `wc -c <'src/xlisp/xcore/c/osptrs.h'`; then
- echo shar: \"'src/xlisp/xcore/c/osptrs.h'\" unpacked with wrong size!
- fi
- # end of 'src/xlisp/xcore/c/osptrs.h'
- fi
- if test ! -d 'src/xlisp/xcore/doc' ; then
- echo shar: Creating directory \"'src/xlisp/xcore/doc'\"
- mkdir 'src/xlisp/xcore/doc'
- fi
- echo shar: End of archive 1 \(of 16\).
- cp /dev/null ark1isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 16 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-